使用LINQ对列表的列表进行聚合
本文关键字:列表 LINQ 使用 | 更新日期: 2023-09-27 18:18:54
下面是我的代码的简化版本:
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
的总数。
谢谢。
dataList
.SelectMany(x => x.Errors)
.GroupBy(x => x)
.Select(g => new { Value = g.Key, Count = g.Count() })
您可以使用Linq的selectMany()语句:
DataList.SelectMany(list => list.Errors).Where(error => error == Error.Error1).Count()