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