C# 数组:降序排序,包括 null 值
本文关键字:包括 null 排序 数组 降序 | 更新日期: 2023-09-27 18:36:17
我有一个(总是 4 个)对象的数组,我需要按对象成员的值降序排序。
我曾想订购它作为
Array = Array.OrderByDescending(p => p.Val)
当然,当其中一个值为空时,这种情况就会消失。因此,我的目标是,但我的 LINQ 达不到,是:
Array = Array.OrderByDescending(p => if( p != null ) p.Val; else float.MinValue)
如何在不必删除并在以后重新添加 null 值的情况下完成此排序?感谢您的帮助。
使用三元条件运算符:
Array = Array.OrderByDescending(p => p != null ? p.Val : float.MinValue)
根据下面的评论,您不能使用 if/else
的原因是因为 lambda 的主体(p =>
右侧的内容)必须是一个表达式,除非您用大括号将整个内容括起来。 因此,为了说明,如果需要,您也可以使用该if/else
:
Array = Array.OrderByDescending(p =>
{
if (p != null) return p.Val;
else return float.MinValue;
});
但显然更啰嗦。
我不确定您正在使用哪些对象/类型,但也许可以尝试如下三元运算符:
Array = Array.OrderByDescending(p => p == null ? float.MinValue : p.Val)
使用此运算符:
Array = Array.OrderByDescending( p => p ?? float.MinValue)