У меня есть процедура, которая инициализирует список ...
var items = new List<TodoItem>();
//... load items from a REST service ...
return items;
Последующая процедура пытается перечислить список ...
foreach (var i in items)
{
// ...
}
Если портал не возвращает никаких элементов, список составляет null
, и попытка перечислить его не удалась ... причины уже обсуждались.
До сих пор я делал != null
проверку перед перечислением. Сейчас я читаю SO сообщение, в котором кто-то говорит, что возвращать null
в случае отсутствия элементов - «плохая практика».
Как мне инициализировать список как пустой список, который можно перечислить, вместо того, чтобы позволить ему быть null
? единственный способ, который пришёл мне в голову, был такой, как
var items = new List<TodoItem>();
items = Enumerable.Empty<TodoItem>()
Это не скомпилируется:
Невозможно неявно преобразовать тип System.Collections.Generic.IEnumerable 'в' System.Collections.Generic.List '. Существует явное преобразование (вам не хватает приведения?).
Попытка использовать явное приведение ...
items = (List<TodoItem>)Enumerable.Empty<TodoItem>();
завершается с ошибкой "недопустимое приведение"
Может ли кто-нибудь посоветовать, как правильно инициализировать мой список?