在这里显示的示例(以及许多其他网站上)关于空条件运算符的示例中,它表明了这一点
int? first = customers?[0].Orders.Count();
Run Code Online (Sandbox Code Playgroud)
可用于获取第一个客户的计数.但是此声明不会检查集合中是否存在客户,并且可能会使索引超出范围异常.什么应该是正确的(最好是单行的)声明,负责检查元素的存在?
null条件运算符用于有条件地访问,null但这不是您遇到的问题.
您正在尝试访问一个空数组.您可以将其转换为FirstOrDefault使用以下操作符访问null的情况:
int? first = customers.FirstOrDefault()?.Orders.Count();
Run Code Online (Sandbox Code Playgroud)
如果数组不为空,它将对第一个项进行操作,如果为空FirstOrDefault则将返回null由null条件运算符处理的数组.
编辑:正如评论中提到的那样,如果您正在寻找另一个项目而不是第一个项目,您可以使用ElementAtOrDefault而不是FirstOrDefault
| 归档时间: |
|
| 查看次数: |
2033 次 |
| 最近记录: |