如何使用LINQ選擇具有最小或最大屬性值的對象我有一個Person對象,它具有Nullable DateOfBirth屬性。是否有一種方法可以使用LINQ查詢具有最早/最小DateOfBirth值的Person對象列表。以下是我開始的想法:var firstBornDate = People.Min(p => p.DateOfBirth.GetValueOrDefault(DateTime.MaxValue));NULL DateOfBirth值被設置為DateTime.MaxValue,以便將它們排除在Min考慮范圍之外(假設至少有一個指定的道布)。但是,對我來說,所做的就是將FirstBornDate設置為日期時間值。我想得到的是與之匹配的Person對象。是否需要編寫第二個查詢,如:var firstBorn = People.Single(p=> (p.DateOfBirth ?? DateTime.MaxValue) == firstBornDate);還是有一種更精簡的方法?
3 回答

達令說
TA貢獻1821條經(jīng)驗 獲得超6個贊
People.Aggregate((curMin, x) => (curMin == null || (x.DateOfBirth ?? DateTime.MaxValue) < curMin.DateOfBirth ? x : curMin))

aluckdog
TA貢獻1847條經(jīng)驗 獲得超7個贊
People
People
var oldest = People.OrderBy(p => p.DateOfBirth ?? DateTime.MaxValue).First();
List<T>
DateOfBirth
IEnumerable<T>
Aggregate()
MaxBy()
/MinBy()
OrderBy()
SortedList<T>
- 3 回答
- 0 關注
- 1442 瀏覽
添加回答
舉報
0/150
提交
取消