Может ли нулевой условный оператор (оператор Элвиса) предотвратить исключение IndexOutOfRangeException? - PullRequest
0 голосов
/ 18 октября 2019

Я читаю нулевой условный оператор, введенный в C#6.0.

Я сделал цепочку оператора ?. и наткнулся на следующую функцию

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

Может ли он также обрабатывать IndexOutOfRangeException или мне еще надо добавить некрасиво try-catch?

1 Ответ

1 голос
/ 18 октября 2019

Нет, просто потому, что это оператор null-conditional, а не indexoutofrange-conditional.

Один из способов обойти это - использовать метод ElementAtOrDefault , который проверяет индекс и возвращает ноль, если он выходит за пределы диапазона.

...