LINQ を使用したプロパティによる重複のカウント
このシナリオでは、ID プロパティを持つオブジェクトのリストがあります。目的は、ID に基づいてオブジェクトをカウントしてグループ化し、カウントが最も高いオブジェクトを先頭にして結果を並べ替えて表示することです。
ID によるグループ化
LINQ は、指定されたプロパティに基づいてオブジェクトをグループ化する「group by」操作を提供します。あなたの場合、ID プロパティによってグループ化する必要があります。これを実現する方法は次のとおりです。
var grouped = items.GroupBy(item => item.ID);
グループ化すると、グループのコレクションが作成され、各グループは同じ ID を持つオブジェクトを表します。
Counting Items inグループ
グループを作成すると、「Count()」メソッドを使用して、グループ内のオブジェクトの数をカウントできます。各グループ。結果は、キーと値のペアのコレクションです。ここで、キーは ID、値はカウントです。
var counted = grouped.Select(group => new { ID = group.Key, Count = group.Count() });
カウントによる並べ替え
最後に、結果をカウントの降順に並べ替えるには、「OrderByDescending()」を使用できます。
var sorted = counted.OrderByDescending(pair => pair.Count);
結果を新しいリストに結合する
結果を目的の形式で表示するには、 ID、カウント、ゲーム名。これを実現するには、プロパティと射影を組み合わせて使用します。
var results = sorted.Select(pair => new { ID = pair.ID, Count = pair.Count, GameName = items.First(item => item.ID == pair.ID).GameName });
これにより、必要なプロパティを持つオブジェクトのリストが得られます。
次の手順に従うことで、重複をカウントできます。 ID プロパティに基づいて結果をカウントし、LINQ を使用して並べ替えます。
以上がLINQ を使用して重複オブジェクトを ID プロパティごとに数えて並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。