如何按多列LINQ/投影进行.GroupBy?

如何按多列LINQ/投影进行.GroupBy?,linq,linq-to-sql,Linq,Linq To Sql,如何使用linq投影按多个列分组 大概是这样的: var q = db.Areas.GroupBy(x => x.AreaCatId, x.AreaCatName, x.AreaId, x.AreaName); 产生平坦的结果集,例如: AreaCatId, AreaCatName, AreaId, AreaName 0 US 1 FL 0 US 2 NY 1 Can

如何使用linq投影按多个列分组

大概是这样的:

var q = db.Areas.GroupBy(x => x.AreaCatId, x.AreaCatName, x.AreaId, x.AreaName);
产生平坦的结果集,例如:

AreaCatId, AreaCatName, AreaId, AreaName
0          US           1       FL 
0          US           2       NY 
1          Canada       3       BC

您可以按匿名类型分组:

var q = db.Areas.GroupBy(
            x => new 
                 {
                     CatId = x.AreaCatId, 
                     CatName = x.AreaCatName, 
                     Id = x.AreaId, 
                     Name = x.AreaName 
                 });

如何在GroupBy之后按“名称”排序?我试过GroupBy(…)。OrderBy(…),但似乎不起作用。谢谢@Jaj GroupBy返回一个IGrouping。如果要将其展平,可以使用:
.GroupBy(..).Select(g=>g.Key).OrderBy(item=>item.Name)