如何在foreach循环之前避免对关联/组合/聚合对象的层次结构进行多次空检查?

用户名

在这种情况下检查空值的最佳方法是什么?

foreach(var item in Vehicles.Car.CarModel)
{
   ...
   ...
}

现在,Car或CarModel可以为Null,应该以某种方式进行检查。什么是最好的方法?

奥利维尔·罗吉尔(Olivier Rogier)

您可以编写此代码,以避免在循环之前的两行中进行空检查:

TypeOfCarModel items = Vehicles?.Car?.CarModel ?? null;

if ( items != null )
  foreach ( var item in items )
  {
  }

这使用Null条件运算符Null协约运算符。

例如,在列表或诸如此类的任何其他情况下,变体可以是:

List<CarModelItem> items = Vehicles?.Car?.CarModel ?? new List<CarModelItem>();

foreach ( var item in items )
{
}

它避免了空检查,因为“ IEnumerable”为空,但它创建了一个实例...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何避免在foreach IList之前进行空检查

如何在避免反模式的同时使用承诺层次结构?

如何在Swift / Xcode中检查线程/队列层次结构?

如何在对象层次结构中找到周期?

如何在密封的通用层次结构中定义对象?

如何避免==空检查?

python通过使用for循环进行层次结构

如何避免在类层次结构通用?

如何在将变量添加为对象属性之前检查变量是否为空?

Rails:如何将多个ActiveRecord关联组合到一个集合中

Rails关联组按计数进行加载

有没有一种方法可以避免在for-each循环迭代开始之前进行空检查?

循环时如何避免 Json 对象中的“空”值

如何在Rails中使用where语句检查空关联?

如何在jQuery中检查空对象

在经常为空的对象上的 for 循环之前检查 ArrayList 是否为空是否更高效

如何在JavaScript对象循环内递归聚合值?

如何避免嵌套的空检查

如何在覆盖之前检查文件是否为空?

对聚合表达式进行空检查

性能-使用foreach循环之前,请检查列表是否为空

对Teradata选举的非聚合值进行分区时具有分析功能的聚合函数必须是关联组的一部分

如何反转JSON对象的层次结构?

jq:如何对嵌套对象进行切片以包括父键层次结构?

如何在嵌套对象上进行聚合-Elasticsearch

检查层次结构中是否存在循环依赖关系

Xcode View Debugger:如何在层次结构中显示3-D检查器中的选择?

如何处理Android / SQlite层次结构中的图像关联?

如何根据合同层次结构实例化与服务类的关联?