使用LINQ进行分组
本文关键字:LINQ 使用 | 更新日期: 2023-09-27 18:30:03
如何使用LINQ
实现以下目标?
我有一些c#对象(我把它们写成JSON
只是为了简化)
{ Name: A, Domain: a, SubDomain: 1}
{ Name: B, Domain: a, SubDomain: 2}
{ Name: C, Domain: b, SubDomain: 1}
{ Name: D, Domain: b, SubDomain: 2}
{ Name: E, Domain: c, SubDomain: 1}
我想把它们收集为:
{ 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}}
您只想按Domain
分组吗?
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)
MSDN
如果我正确理解你的评论,这就是你想要的:
var groupedList = list.GroupBy(x => x.Domain, x => new
{
x.Name,
x.SubDomain
});
MSDN