Обработка нуля в любом()C#

Место общения программистов C#
Ответить
Anonymous
 Обработка нуля в любом()

Сообщение Anonymous »

Вот мой метод:

Код: Выделить всё

IQueryable GetById(IEnumerable items)
{
if (items is null || !items.Any())
{
return Enumerable.Empty().AsQueryable();
}
}
Я вызываю это отсюда

Код: Выделить всё

GetById(targets.SelectMany(target => target.Jobs)).Select(s => s.Caption).Distinct().ToList();
Когда target.Jobs имеет значение NULL, метод GetById отправляет нулевой объект. Когда Any() выполняется, он выдает исключение NullRefException.
  • Где лучше всего его обработать? В методе GetById или в вызывающем объекте?
  • В методе GetById, как его правильно обработать? Я не могу выполнить Count(), потому что сонар не хочет, и я думаю, что результат будет тот же.
Я попробовал попробовать catch блокировать с исключением nullref, но сонар сказал вместо этого проверить null. Но я не могу проверить значение null, потому что значение null указано в любом методе, а не в объекте items

Подробнее здесь: https://stackoverflow.com/questions/793 ... ull-on-any
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»