首頁 > 後端開發 > C++ > 如何使用LINQ找到最早的出生日期的人?

如何使用LINQ找到最早的出生日期的人?

Linda Hamilton
發布: 2025-02-01 03:46:35
原創
801 人瀏覽過

How to Find the Person with the Earliest Birthdate Using LINQ?

使用LINQ查找具有最小或最大屬性值的對象

LINQ提供了一種強大而高效的方式來查詢數據。它在根據特定條件選擇對象時特別有用,例如查找特定屬性值最小或最大的對象。

假設您有一個包含Person對象的列表,這些對象具有可為空的DateOfBirth屬性。您可能需要確定出生日期最早的人。

一種方法是使用Min方法查找DateOfBirth屬性的最小值。但是,這只會返回最小日期值,而不是實際的Person對象。

要獲取相應的對象,您可以使用Aggregate方法:

<code class="language-csharp">var firstBorn = People.Aggregate((curMin, x) => (curMin == null || (x.DateOfBirth ?? DateTime.MaxValue) < (curMin.DateOfBirth ?? DateTime.MaxValue)) ? x : curMin);</code>
登入後複製

Aggregate方法採用兩個參數:初始累加器值和一個函數,該函數將當前累加器和序列中的每個元素組合起來以生成新的累加器值。

在本例中,初始累加器值設置為null。傳遞給Aggregate方法的函數檢查當前累加器值是否為null,或者當前元素的DateOfBirth屬性(用DateTime.MaxValue替換null值)是否早於當前累加器的DateOfBirth屬性。如果為真,則該函數返回當前元素作為新的累加器;否則,它返回當前累加器。

Aggregate的結果是出生日期最早的Person對象。這種更簡潔的方法無需進行第二次查詢來檢索相應對象。

以上是如何使用LINQ找到最早的出生日期的人?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板