Null 条件运算符(猫王运算符)可以防止 IndexOutOfRangeException 吗?

Can Null-conditional operator (Elvis operator) prevent IndexOutOfRangeException?

我正在阅读 C#6.0 中介绍的空条件运算符。

我链接了 ?. 运算符并遇到了以下函数

double SumNumbers(List<double[]> setsOfNumbers, int indexOfSetToSum)
{
    return setsOfNumbers?[indexOfSetToSum]?.Sum() ?? double.NaN;
}

它也可以处理 IndexOutOfRangeException 还是我还必须添加丑陋的 try-catch

不,只是因为它是 null-conditional 运算符,而不是 indexoutofrange-conditional 运算符。

解决该问题的一种方法是使用 ElementAtOrDefault 方法检查索引,如果超出范围则 returns null。