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