作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 C# 10 .Net 6 中新的 MinBy
或 MaxBy
调用之后是否有内联方法来投影属性?
double topPriceInList = prices.MaxBy(h => h.High)."Select(h => h.High)";
当然,Visual Studio 2021 不喜欢我尝试过的任何版本。
最佳答案
MaxBy(this IEnumerable<T>)
和MinBy(this IEnumerable<T>)
不要返回IEnumerable<T>
- 它们返回单个元素(即 T
),所以只需这样做:
double topPriceInList = prices.MaxBy(h => h.High).High;
也就是说,上面的代码不需要 MaxBy
,只需使用 Max
:
double topPriceInList = prices.Max(h => h.High);
// or:
double topPriceInList = prices.Select(h => h.High).Max();
Min
, Max
, MinBy
,和MaxBy
如果源集合为空(或者任何先前的 .Where
步骤消除了所有元素),都会在运行时抛出异常MinOrDefault
, MaxOrDefault
, MaxByOrDefault
,或MaxByOrDefault
,在这种情况下使用空安全导航运算符 ?.
(又名elvis-operator)。
...OrDefault()
扩展方法在 IEnumerable<Nullable<T>>
上调用和不IEnumerable<T>
因为default(T)
对于值类型永远不会 null
这是错误的常见来源。double? topPriceInListOrNull = prices.Select(h => (double?)h.High).MaxOrDefault();
关于C# 10 .Net 6 MinBy MaxBy Linq 投影到单个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69818521/
我有一个 SQLite 表,其中混合有整数列和浮点列。我正在尝试获取每列的最大值和最小值。对于整数列,以下代码有效,但在浮点列上使用相同的代码时出现转换错误: let numCats = query{
在 C# 10 .Net 6 中新的 MinBy 或 MaxBy 调用之后是否有内联方法来投影属性? double topPriceInList = prices.MaxBy(h => h.High)
这个问题在这里已经有了答案: Difference between stream.max(Comparator) and stream.collect(Collectors.maxBy(Compar
我是一名优秀的程序员,十分优秀!