ホームページ > バックエンド開発 > C++ > ラムダ式を使用して .NET で個別の値を取得するにはどうすればよいですか?

ラムダ式を使用して .NET で個別の値を取得するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-25 23:06:10
オリジナル
776 人が閲覧しました

How Can I Use Lambda Expressions to Get Distinct Values in .NET?

ラムダ式を使用した .NET の一意の値の効率的な識別

コレクションから固有の要素を抽出することは、プログラミングで頻繁に必要となる作業です。 .NET の LINQ ライブラリでは、このための Distinct() メソッドが提供されていますが、特定の等価比較を必要とするカスタム オブジェクトを処理する場合、その制限が明らかになります。 Distinct()IEqualityComparer を受け入れますが、この比較にラムダ式を直接使用することはネイティブにサポートされていません。

IEqualityComparer

を使用した簡潔なアプローチ

1 つの解決策には、IEqualityComparer インラインを作成することが含まれます。

<code class="language-csharp">var distinctValues = myCustomerList.Distinct(
    EqualityComparer<Customer>.Create((c1, c2) => c1.CustomerId == c2.CustomerId)
);</code>
ログイン後にコピー

この方法は機能しますが、やや面倒に感じるかもしれません。

代替案: GroupBySelect

を利用する

より洗練された代替案は、明示的な IEqualityComparer の必要性を回避します。 このアプローチでは、GroupBySelect を利用します:

<code class="language-csharp">IEnumerable<Customer> filteredList = originalList
  .GroupBy(customer => customer.CustomerId)
  .Select(group => group.First());</code>
ログイン後にコピー

これは、指定されたキー (この場合は CustomerId) に基づいて要素をグループ化し、各グループから最初の項目を選択して、重複を効果的に除外します。 これにより、ラムダ式を使用して個別の値を取得するための、よりクリーンで読みやすいソリューションが提供されます。

以上がラムダ式を使用して .NET で個別の値を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート