3

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}}
4

1 に答える 1

8

でグループ化したいだけです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

于 2012-04-04T12:04:36.480 に答える