С# Linq - не может неявно преобразовать IEnumerable <string> в List <string>
У меня есть список, определенный следующим образом:
public List<string> AttachmentURLS;
Я добавляю элементы в список следующим образом:
instruction.AttachmentURLS = curItem.Attributes["ows_Attachments"].Value.Split(';').ToList().Where(Attachment => !String.IsNullOrEmpty(Attachment));
Но я получаю эту ошибку: не могу неявно преобразовать IEnumerable в List
Что я делаю неправильно?
Ответы
Ответ 1
Метод Where возвращает IEnumerable<T>
. Попробуйте добавить
.ToList()
до конца так:
instruction.AttachmentURLS = curItem.Attributes["ows_Attachments"].Value.Split(';').ToList().Where(Attachment => !String.IsNullOrEmpty(Attachment)).ToList();
Ответ 2
Переместите .ToList()
до конца, как это показано
instruction.AttachmentURLS = curItem
.Attributes["ows_Attachments"]
.Value
.Split(';')
.Where(Attachment => !String.IsNullOrEmpty(Attachment))
.ToList();
Метод расширения Where возвращает IEnumerable<string>
и Where
будет работать с массивами, поэтому ToList
не нужен после Split
.
Ответ 3
.ToList()
должен быть наконец. Потому что в вашем коде вы выполняете операцию .ToList()
раньше, а затем снова переходите к предыдущему состоянию. Метод Where возвращает IEnumerable.