【发布时间】:2015-10-26 09:09:32
【问题描述】:
在此处显示的示例 (and on numerous other websites) 中,关于空条件运算符,它声明
int? first = customers?[0].Orders.Count();
可用于获取第一位客户的计数。但是此语句不检查集合中是否存在客户,并且可能会引发索引超出范围异常。负责检查元素是否存在的正确(最好是单行)语句应该是什么?
【问题讨论】:
-
猜猜,客户?检查 icustomers 数组是否为空,在您的情况下它不是,但客户数组为空。所以你在索引 0 处没有任何元素
-
还有订单?如果 Orders 为 NULL,则会出错。你必须使用:int?第一个 = 客户?[0].Orders?.Count();