ホームページ >バックエンド開発 >C++ >LINQを使用して、特定のプロパティに基づいて異なるオブジェクトを取得する方法は?

LINQを使用して、特定のプロパティに基づいて異なるオブジェクトを取得する方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-02-02 09:01:10158ブラウズ

How to Use LINQ to Get Distinct Objects Based on Specific Properties?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。