linqの特定の属性をオブジェクトリストに使用すると、アプリケーションが使用されます
linqの
解決策:Distinct()
このため、必要な属性に従ってオブジェクトをグループ化し、各グループから最初の要素を選択できます。これにより、リストが提供されます。このリストのオブジェクトは、指定された属性に対して一意です。 例:
IDと名前の属性を持つ個人のオブジェクトを考慮してください:
ID属性に基づいてさまざまな人事リストを取得するには:
これにより、person1とperson3のみを含むリストが生成されます。
<code>Person1:Id=1,Name="Test1" Person2:Id=1,Name="Test1" Person3:Id=2,Name="Test2"</code>複数の属性:
<code class="language-csharp">List<Person> distinctPeople = allPeople .GroupBy(p => p.Id) .Select(g => g.First()) .ToList();</code>複数の属性に従ってグループ化する必要がある場合は、匿名タイプを使用できます。
注:
一部のクエリプロバイダーは、各グループに少なくとも1つの要素があることを確認するために、
の代わりに
を使用する必要がある場合があります。<code class="language-csharp">List<Person> distinctPeople = allPeople .GroupBy(p => new { p.Id, p.FavoriteColor }) .Select(g => g.First()) .ToList();</code>
互換性のあるメソッド(6番目のバージョンの前)(6番目のバージョンの前)の互換性のある方法については、この返信を参照してください:https://www.php.cn/link/7dd21654ce1c39ec763219e71f11
以上がLINQを使用して、特定のプロパティに基づいて異なるオブジェクトを取得する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。