Uwe*_*eim 16 c# null c#-6.0 null-propagation-operator
阅读了很多关于Null传播算子的内容?.,我没有回答它是否有助于以下场景.
抛出的代码:
int[] values = null;
foreach ( var i in values ) // Throws since values is null.
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
为了使其工作,我必须null在访问values变量之前添加一个检查.
很可能上述代码超出了Null传播运算符的设计考虑范围.不过,可以肯定的是,我不得不问.
我的问题:
尝试null在foreach循环中访问集合时,Null传播运算符是否有用?
Uwe*_*eim 10
我找到了另一种工作方式:
当使用Jon Skeet(等人)出色的MoreLinq扩展时,我可以在我的初始示例中使用ForEach扩展方法,例如:
int[] values = null;
values?.ForEach(i=> /*...*/); // Does not throw, even values is null.
Run Code Online (Sandbox Code Playgroud)