输出相应的唯一元素



我有一个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
}

最新更新