如何按多列LINQ/投影进行.GroupBy?
如何使用linq投影按多个列分组 大概是这样的:如何按多列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
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)代码>