c# - 如何避免在 foreach 循环之前对关联/组合/聚合对象的层次结构进行许多空检查?
问题描述
在这种情况下检查空值的最佳方法是什么?
foreach(var item in Vehicles.Car.CarModel)
{
...
...
}
现在 Car 或 CarModel 可以为 Null 并且应该以某种方式进行检查。什么是最好的方法?
解决方案
您可以编写此代码以避免在循环之前的两行中进行一些空检查:
TypeOfCarModel items = Vehicles?.Car?.CarModel ?? null;
if ( items != null )
foreach ( var item in items )
{
}
例如,在列表或任何其他类似的情况下,变体可能是:
List<CarModelItem> items = Vehicles?.Car?.CarModel ?? new List<CarModelItem>();
foreach ( var item in items )
{
}
它避免了空检查,因为“ IEnumerable
”为空,但它创建了一个实例......
推荐阅读
- string - 一个指向 char 的指针如何像数组一样工作?
- python - 当列名是值时,将列从矩阵添加到 DF
- ruby-on-rails - Rails 嵌套连接与第三个模型
- php - 是否有使用 $stmt->close(); 的正确方法?
- r - 使用数据帧的长度对带有 lapply 的列表进行子集化
- bash - 问题设置自定义 bash 提示显示 git 分支
- javascript - 如何在角度的 api 请求中使用授权标头令牌进行身份验证
- google-app-engine - 在云数据存储中使用整数 ID 作为字符串键是个好主意吗?
- python - Flask 中的错误消息“模块'__main__'没有属性'__package__'”
- nginx - 在 kubernetes 上部署时散景中的 WebSocket 握手错误?