linq对数据集多个字段进行分组

linq有两种方式对一个数据集合进行分组

1.直接传递匿名类型

personList
.groupBy(p=>{p.Age,p.Sex})


2.如果遇到一个不支持创建匿名对象来多字段进行分组的,比如System.DataRow

ProductAttrsTable
.AsEnumerable()
.GroupBy(g=>g.CategoryID)
.SelectMany(g=>g.GroupBy(b=>b.BrandID))
.ToList();
先根据条件1进行分组,然后再条件1的结果中再根据条件2来分组,再把这些组连接起来成为一个序列。

SelecteMany()就是将其中的序列连接成一个完整的序列。



你可能感兴趣的:(C#)