2

私のクラス:

    public class Foo
    {
        public int A { get; set; }
        public List<Bar> Bars { get; set; }
    }

私は持っていIEnumerable<Foo>ます。List<Foo>A でグループ化して、グループの Bars にあるすべての要素を含む Bars リストを取得したいと思います。

したがって、最終的な Foo.Bars にはグループの Bar のすべての要素が含まれている必要があります

linqで可能ですか?

4

1 に答える 1

5
var result = foos.GroupBy(f => f.A)
                 .SelectMany(grp => grp.Select(f => f.Bars));

ローリングが述べたように、これは を返さないIEnumerable<Foo>ので、これを試してください:

IEnumerable<Foo> result = 
            foos.GroupBy(f => f.A)
            .Select(grp => new Foo() { 
                A = grp.Key,
                Bars = grp.SelectMany(ff => ff.Bars).Distinct().ToList()
            });

の個別のリストが必要かどうかはわかりませBarsん。クラスでEquals オーバーライドする必要がある場合があることに注意してください。GetHashCodeBar

于 2012-06-15T13:14:25.037 に答える