gpt4 book ai didi

c# - 如何使用 LINQ 选择具有最小或最大属性值的对象

转载 作者:IT王子 更新时间:2023-10-29 03:27:38 25 4
gpt4 key购买 nike

我有一个带有 Nullable DateOfBirth 属性的 Person 对象。有没有一种方法可以使用 LINQ 查询 Person 对象列表,以查找具有最早/最小 DateOfBirth 值的对象?

这是我的开头:

var firstBornDate = People.Min(p => p.DateOfBirth.GetValueOrDefault(DateTime.MaxValue));

Null DateOfBirth 值设置为 DateTime.MaxValue 以便将它们排除在 Min 考虑之外(假设至少有一个具有指定的 DOB)。

但我所做的只是将 firstBornDate 设置为 DateTime 值。我想要得到的是与之匹配的 Person 对象。我是否需要像这样编写第二个查询:

var firstBorn = People.Single(p=> (p.DateOfBirth ?? DateTime.MaxValue) == firstBornDate);

或者有更精简的方法吗?

最佳答案

People.Aggregate((curMin, x) => (curMin == null || (x.DateOfBirth ?? DateTime.MaxValue) <
curMin.DateOfBirth ? x : curMin))

关于c# - 如何使用 LINQ 选择具有最小或最大属性值的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/914109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com