以下是我的代码的简化版本:
public enum Error
{
Error1,
Error2,
Error3,
}
public class DataUnit
{
public int Data; // Any Data
public List<Error> Errors { get; private set; }
}
List<DataUnit> DataList;
我想使用LINQ来展平DataList
并获得Error1
,Error2
和Error3
的总数。
谢谢。
答案 0 :(得分:5)
dataList
.SelectMany(x => x.Errors)
.GroupBy(x => x)
.Select(g => new { Value = g.Key, Count = g.Count() })
答案 1 :(得分:0)
您可以使用Linq的selectMany()语句:
DataList.SelectMany(list => list.Errors).Where(error => error == Error.Error1).Count()