260

IGroupingとそのSelect()方法について質問があります。

私がIEnumerable<IGrouping<int, smth>>このように持っているとしましょう:

var groups = list.GroupBy(x => x.ID);

はどこlistですかList<smth>

そして今IGrouping、何らかの方法でそれぞれの値を別のリストに渡す必要があります:

foreach (var v in structure)
{
    v.ListOfSmth = groups.Select(...); // <- ???
}

そのようなコンテキストでList<smth>から値 ( )を取得する方法を提案できる人はいますか?IGrouping<int, smth>

4

7 に答える 7

25

上記の回答のより明確なバージョン:

IEnumerable<IGrouping<int, ClassA>> groups = list.GroupBy(x => x.PropertyIntOfClassA);

foreach (var groupingByClassA in groups)
{
    int propertyIntOfClassA = groupingByClassA.Key;

    //iterating through values
    foreach (var classA in groupingByClassA)
    {
        int key = classA.PropertyIntOfClassA;
    }
}
于 2015-05-24T21:16:35.967 に答える
18

IGrouping の定義から:

IGrouping<out TKey, out TElement> : IEnumerable<TElement>, IEnumerable

次のような要素を反復処理できます。

IEnumerable<IGrouping<int, smth>> groups = list.GroupBy(x => x.ID)
foreach(IEnumerable<smth> element in groups)
{
//do something
}
于 2013-08-21T14:09:46.633 に答える