LINQ を使用して CarCode に基づいて一意の車オブジェクトを抽出する
潜在的に冗長なプロパティを持つオブジェクトのコレクションを管理するには、多くの場合、効率的なフィルタリング技術が必要です。 この記事では、LINQ が特定のプロパティに基づく一意性に焦点を当て、コレクションから個別のオブジェクトを取得するプロセスを簡素化する方法を示します。
課題:
Car
オブジェクトのリストがあり、それぞれが CarCode
プロパティによって一意に識別されるとします。 タスクは、LINQ を使用して、一意の CarCode
値を持つ車のみを含む新しいコレクションを作成することです。
解決策:
LINQ のグループ化および選択機能は、簡潔なソリューションを提供します。
<code class="language-csharp">List<Car> cars = new List<Car>(); List<Car> distinctCars = cars .GroupBy(car => car.CarCode) .Select(g => g.First()) .ToList();</code>
詳細な説明:
GroupBy
メソッドは、元の cars
リストをグループに編成し、CarCode
プロパティによって分類します。 各グループには、同じ CarCode
を共有する車両が含まれています。
その後、Select
メソッドはこれらのグループを反復処理し、各グループから最初の Car
オブジェクトを選択します。 各グループは一意の CarCode
を表すため、この選択により、結果のコレクションには個別の Car
オブジェクトのみが含まれることが保証されます。
メソッドは、結果のシーケンスを、一意の ToList()
値を持つ車のみを含む新しい List<Car>
、distinctCars
に変換します。 これにより、識別コードに基づいて重複する車のオブジェクトが効果的に排除されます。CarCode
以上がLINQ を使用して CarCode に基づいて個別の車オブジェクトを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。