LINQ を使用したオブジェクトのリスト内の重複のカウント
一意のプロパティを持つオブジェクトのリストが与えられた場合、重複プロパティの数を決定するのはプログラミングにおける一般的な要件。 LINQ (言語統合クエリ) 構文を使用すると、このタスクを効果的に実行できます。
GroupBy および OrderBy の使用
基本的なアプローチには、LINQ の GroupBy 演算子と OrderBy 演算子の利用が含まれます。 GroupBy は指定されたプロパティに基づいてリストをグループに分割し、OrderBy は要素数の降順でグループを配置します。
var groupedItems = list.GroupBy(x => x.Property) .Select(x => new { Property = x.Key, Count = x.Count() }); var orderedItems = orderedItems.OrderByDescending(x => x.Count);
このコードは、指定されたプロパティによってオブジェクトをグループ化し、それぞれのプロパティ内の数を計算します。
オブジェクトのカスタマイズ比較
オブジェクトに直接比較できるプロパティがない場合は、カスタム比較子またはラムダ式を定義できます。たとえば、オブジェクトに一意の ID プロパティがある場合:
var groupedItems = list.GroupBy(x => new { x.Property, x.ID }) .Select(x => new { Property = x.Key.Property, Count = x.Count() });
複数のプロパティの処理
グループ化の複数のプロパティを考慮するには、複合キーを使用できます。
var groupedItems = list.GroupBy(x => new { x.Property1, x.Property2 }) .Select(x => new { Property1 = x.Key.Property1, Property2 = x.Key.Property2, Count = x.Count() });
拡張機能を使用した実装メソッド
コードをより簡潔にするために、拡張メソッドを使用できます。
public static IEnumerable<T> CountDuplicates<T>(this IEnumerable<T> list, Func<T, object> keySelector) { return list.GroupBy(keySelector) .Select(x => new { Key = x.Key, Count = x.Count() }); }
この拡張メソッドは、指定されたキー セレクター関数に基づいて重複をカウントする再利用可能な方法を提供します。
LINQ の機能を活用し、これらのテクニックを活用することで、開発者は、リスト内の重複値を含むデータを効率的に管理および分析できます。オブジェクト。
以上がLINQ を使用してオブジェクトのリスト内の重複プロパティを効率的にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。