我有一个class
public class Error
{
public string Message {get; set;}
public string Recomendation {get; set;}
public ErrorType errorType {get; set;}
}
其中ErrorType是指定错误类型的enum
我收到一个错误列表作为输入,并希望收到如下输出:为每个元素打印一个Message,并仅为相应类型的错误(如
)显示一个Recommendation输入:
[err1, rec1, type1],
[err2, rec1, type1],
[err3, rec2, type2]
输出:
err1
err2
rec1
err3
rec2
我认为它可以通过在遍历列表时存储一个中间变量来实现,但我无法弄清楚在边缘情况下该怎么做,或者当所有实体的错误类型都相同时。如何实现这种逻辑?
考虑使用LINQ GroupBy,它将允许您根据错误类型或建议进行分组。然后你可以迭代你的组,写出你的错误信息和建议:
// Assume variable "input" is an Enumerable of Error objects
var recommendations = input.GroupBy(err => err.Recomendation);
foreach (var errorTypeGroup in recommendations)
{
foreach (var error in errorTypeGroup)
{
Console.WriteLine(error.Message);
}
Console.WriteLine(errorTypeGroup.Key); // Key will be the recommendation selected by the lambda
}