C# 使用LINQ分组
如何使用C# 使用LINQ分组,c#,.net,linq,grouping,C#,.net,Linq,Grouping,如何使用LINQ实现以下功能 我有一些c#对象(我把它们写成JSON只是为了简化) 我想把它们收集为: { Domain: a ,{{Name: A, SubDomain: 1}, {Name: B, SubDomain: 2}} Domain: b ,{{Name: C, SubDomain: 1}, {Name: D, SubDomain: 2}} Domain: c ,{{Name: E, SubDomain: 1}} 您只想按域进行分组 var list = GetListFr
LINQ
实现以下功能
我有一些c#对象(我把它们写成JSON
只是为了简化)
我想把它们收集为:
{ Domain: a ,{{Name: A, SubDomain: 1}, {Name: B, SubDomain: 2}}
Domain: b ,{{Name: C, SubDomain: 1}, {Name: D, SubDomain: 2}}
Domain: c ,{{Name: E, SubDomain: 1}}
您只想按
域进行分组
var list = GetListFromFoo();
var groupedList = list.GroupBy(x => x.Domain);
这是通过以下LINQ
方法完成的:
public static IEnumerable<IGrouping<TKey, TSource>> GroupBy<TSource, TKey>(
this IEnumerable<TSource> source, Func<TSource, TKey> keySelector)
GroupBy(x=>x.Domain)
你想用谷歌搜索吗?两件事:a)每个键下的元素仍然是原始类型,不忽略互键。b) 键不是集合的成员,它不会在JSON之后反映出来serializtion@EladBenda. 请显示类成员,以及您希望最后的类型是什么。{Domain:a,{{Name:a,SubDomain:1},{Name:B,SubDomain:2}}Domain:B,{{Name:C,SubDomain:1},{Name:D,SubDomain:2}Domain:C,{Name:E,SubDomain:1}
public static IEnumerable<IGrouping<TKey, TSource>> GroupBy<TSource, TKey>(
this IEnumerable<TSource> source, Func<TSource, TKey> keySelector)
var groupedList = list.GroupBy(x => x.Domain, x => new
{
x.Name,
x.SubDomain
});