IGroupingから値を取得する方法 質問する

IGroupingから値を取得する方法 質問する

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>

ベストアンサー1

IGrouping<TKey, TElement>は を実装しているのでIEnumerable<TElement>、 を使用してSelectManyすべてIEnumerablesを 1 つにまとめることができますIEnumerable

List<smth> list = new List<smth>();
IEnumerable<IGrouping<int, smth>> groups = list.GroupBy(x => x.id);
IEnumerable<smth> smths = groups.SelectMany(group => group);
List<smth> newList = smths.ToList();

ビルド/実行の例を次に示します。https://dotnetfiddle.net/DyuaaP

このソリューションのビデオ解説:https://youtu.be/6BsU1n1KTdo

おすすめ記事