我刚刚安装了 ReSharper,它发生了变化
if(dto != null)
{
return new test{
obj1 = "",
obj2 = "",
}
}
进入
return dto?.Select(item => new test
{
return new test{
obj1 = "",
obj2 = "",
}
没见过
dto?.Select
试图用谷歌搜索意思,但没有成功。有人可以解释一下,或者给我指出正确的定义方向吗
我猜它只是检查是否为 null?
最佳答案
Null propagation operator 是C# 6 新引入的。return dto?.Select... 意思是,如果dto 为null 那么这条语句将返回null else 将执行剩下的部分。 另一个例子,假设你有 Employee 对象和 Address 属性,它又有 Lane (string)、Pincode 等。 因此,如果您需要获取地址 channel 值,您可以这样做:
var lane = employee?.Address?.Lane;
如果员工或地址为空,则返回空;否则返回车道值。
这可以以多种方式组合,而且非常方便。 例如,
int someIntegerValue = someObject?.SomeIntValue ?? 0;
基本上,您可以使用此功能避免许多空检查。
关于c# - 在 linq 上选择之前检查空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39054765/