如何实现Error列表输出规则:每条输出Message、同ErrorType仅输出一次Recomendation
实现方案
核心思路
对输入的Error列表按ErrorType分组,分组顺序保留各类型在原列表中首次出现的顺序。遍历每个分组时,先输出分组内所有Error实例的Message字段,再输出该类型对应的Recomendation字段(同类型仅输出一次)。
代码实现
// ErrorType枚举可根据实际业务定义 public enum ErrorType { Type1, Type2 } public class Error { public string Message { get; set; } public string Recomendation { get; set; } public ErrorType errorType { get; set; } } public void ProcessErrorList(List<Error> errorList) { // 空列表直接返回 if (errorList == null || !errorList.Any()) return; // 按ErrorType分组,保留类型首次出现的顺序 var errorGroups = errorList .GroupBy(e => e.errorType) .OrderBy(g => errorList.FindIndex(e => e.errorType == g.Key)); foreach (var group in errorGroups) { // 输出当前分组所有错误信息 foreach (var error in group) { Console.WriteLine(error.Message); } // 输出当前类型对应的建议,仅输出一次 Console.WriteLine(group.First().Recomendation); } }
边界情况处理
- 所有Error的
ErrorType均相同:仅生成一个分组,输出完全部Message后输出一次Recomendation,符合要求 - 输入列表仅含1个Error元素:输出
Message后输出一次对应建议 - 输入列表为空:直接返回无输出
- 同
ErrorType对应不同Recomendation:默认取该类型第一个实例的Recomendation输出,若业务要求同类型建议统一,可在校验不一致时抛出异常或取统一值
内容的提问来源于stack exchange,提问作者Neironari
相关产品推荐
相关产品推荐

