ホームページ > バックエンド開発 > C++ > LINQは、最小または最大のプロパティ値でオブジェクトを効率的に見つけることができますか?

LINQは、最小または最大のプロパティ値でオブジェクトを効率的に見つけることができますか?

Mary-Kate Olsen
リリース: 2025-02-01 03:36:10
オリジナル
885 人が閲覧しました

How Can LINQ Efficiently Find the Object with the Minimum or Maximum Property Value?
LINQを使用した最小/最大属性値を持つ

オブジェクト

データ処理シナリオでは、特定の属性を持つ最小値または最大値を持つ特定のオブジェクトがしばしば必要です。 LINQは、これを達成するための簡単な方法を提供します。

あなたの例を見てみましょう。ここでは、人オブジェクトが空になる可能性のあるburth属性を持っています。生年月日に初期の人々を見つけるために、あなたは最初に次の方法を試しました:

しかし、これは最小の日付値を取得するだけです。対応する人オブジェクトを取得するには、追加のクエリが必要です。

<code>var firstBornDate = People.Min(p => p.DateOfBirth.GetValueOrDefault(DateTime.MaxValue));</code>
ログイン後にコピー
簡単な解決策:集計を使用

linqは、集約方法を使用する代替方法を提供します:

このコードフラグメントを使用して、1つのクエリで最小の日付値と対応する人オブジェクトを取得できます。各要素のdateofbirthプロパティを現在の最小値と繰り返し比較し、最小値で要素を返します。

集計を使用すると、2番目のクエリのニーズを排除し、コードを大幅に簡素化できます。この方法は、短い値属性を持つ可能性のある極端な値を見つける必要がある場合に特に役立ちます。
<code>var firstBorn = People.Aggregate((curMin, x) => (curMin == null || 
    (x.DateOfBirth ?? DateTime.MaxValue) < (curMin.DateOfBirth ?? DateTime.MaxValue)) ? x : curMin);</code>
ログイン後にコピー

以上がLINQは、最小または最大のプロパティ値でオブジェクトを効率的に見つけることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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