Ale*_*lex 4 c# linq conditional sum
这就是我得到的总和
double? myVar = myList.Sum(x => x.MyItem);
Run Code Online (Sandbox Code Playgroud)
如果.Sum()在同一行中返回0,是否可以用null替换myVar?
我不想用
if(myVar == 0) myVar = null;
Run Code Online (Sandbox Code Playgroud)
LINQ是否有条件后声明?
听起来你想要与null-coalescing运算符相反,并且在LINQ或C#语言中都没有为你做这件事.如果您愿意,可以创建自己的扩展方法:
public T? NullIfDefault<T>(this T? value) where T : struct
{
if (value == null)
{
return value;
}
return EqualityComparer<T>.Default.Equals(default(T), value.Value)
? null : value;
}
Run Code Online (Sandbox Code Playgroud)
然后:
double? myVar = myList.Sum(x => x.MyItem).NullIfDefault();
Run Code Online (Sandbox Code Playgroud)
(您可以NullIfDefault
使用各种其他选项进行编码,例如使用Nullable<T>.GetValueOrDefault()
- 您可能想要找到最喜欢的表单.)
归档时间: |
|
查看次数: |
104 次 |
最近记录: |