3Pi*_*3Pi 1 c# arrays null sql-order-by
我有一个(总是4个)对象的数组,我需要通过对象成员的降序来排序.
我原以为要点它
Array = Array.OrderByDescending(p => p.Val)
Run Code Online (Sandbox Code Playgroud)
当然,当其中一个值为null时,这就会失败.所以我的目标是,但我的LINQ不符合,是:
Array = Array.OrderByDescending(p => if( p != null ) p.Val; else float.MinValue)
Run Code Online (Sandbox Code Playgroud)
如何在不必删除并稍后重新添加空值的情况下完成此排序?谢谢你的帮助.
Kir*_*oll 12
使用三元条件运算符:
Array = Array.OrderByDescending(p => p != null ? p.Val : float.MinValue)
Run Code Online (Sandbox Code Playgroud)
根据下面的评论,你不能使用的原因if/else是因为lambda的主体(右边的东西p =>)必须是一个表达式,除非你用花括号包围整个东西.所以为了说明,你也可以使用if/else你想要的:
Array = Array.OrderByDescending(p =>
{
if (p != null) return p.Val;
else return float.MinValue;
});
Run Code Online (Sandbox Code Playgroud)
但显然更加冗长.