リストのリストでSelectManyを使用し、GroupByの「名前」とリストの「数」を使用して値を ' 「値」と「カウント」。SelectManyを呼び出して項目リストを返し、パラメータとしてリストから項目を返します
var groups = originalList.SelectMany(fullList => fullList.ListOfItems, (fullList, details) => new { fullList.Name, fullList.ListOfItems })
.GroupBy(x => x.Name,
x => x.ListOfItems.Count())
.Select(g => new { Name = g.Key, Count = g.Count()});
//Do something with results
foreach (var item in groups)
{
var name = item.Name;
var count = item.Count;
}
実際のListOfItemsを最後のグループに渡したいので、これもアクセスしたいと思います。私はこれを行うには、このクエリを変更するにはどうすればよい
foreach (var item in groups)
{
var value = item.Name;
var count = item.Count;
var list = item.ListOfItems. <-- I want this also
}
:
は、だから私はで終わるしたいですか?
サンプル入力と予想サンプル出力を提供してください。 https://stackoverflow.com/help/mcve – mjwills
なぜこの行の最後に '.ToList()'を追加できないのですか?.Select(g => new {Name = g.Key、Count = g.Count ()})。ToList(); ' – MethodMan
現在、' Count'は 'xを無視して各グループの項目を数えます。 ListOfItems.Count() '値。これはあなたが持っている予定ですか? – dasblinkenlight