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

LINQを使用して、特定のプロパティに基づいて異なるオブジェクトを取得するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-02-02 08:56:11245ブラウズ

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

linqの個別の()複雑なオブジェクトプロパティを使用して

linqの個別()メソッドは、複製要素をコレクションから削除する効率的な方法を提供します。ただし、1つまたは複数のオブジェクトプロパティに基づいて異なる要素を見つけるには、異なるアプローチが必要です。

特定のプロパティに基づいて異なる結果を得るには、異なる結果のためにプロパティをグループ化する必要があります。グループを作成し、各グループから代表者を選択するためのGroupBy()およびFirst()メソッド。たとえば、

このシナリオでは、クエリはすべての人をandidプロパティでグループ化し、各グループの最初の人を選択します。結果は、人物に基づいた人の明確なリストになります。
List<Person> distinctPeople = allPeople
  .GroupBy(p => p.PersonId)
  .Select(g => g.First())
  .ToList();

複数のプロパティのグループ化

複数のプロパティに基づいて異なる結果が必要な場合は、次のようにクエリを変更します。

このクエリは、両方の基準に基づいて個別のリストを確保するために、人と好意的なプロパティによって人々をグループ化します。プロバイダーは、各グループに少なくとも1つの要素があることを保証しない場合があります。そのような場合、first()の代わりにfirstordefault()を使用することを検討してください。さらに、この手法は、6より前にエンティティフレームワークのコアバージョンで使用するのに適していない場合があります。https://stackoverflow.com/a/66529949/8155で、このような環境での互換性については、代替アプローチを参照してください。

以上がLINQを使用して、特定のプロパティに基づいて異なるオブジェクトを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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