Я пытаюсь использовать тип IList
типа List
, но я получаю ошибку каждый раз.Включите IList в список
List<SubProduct> subProducts= Model.subproduct;
Model.subproduct
возвращается IList<SubProduct>
.
Я пытаюсь использовать тип IList
типа List
, но я получаю ошибку каждый раз.Включите IList в список
List<SubProduct> subProducts= Model.subproduct;
Model.subproduct
возвращается IList<SubProduct>
.
Попробуйте
List<SubProduct> subProducts = new List<SubProduct>(Model.subproduct);
или
List<SubProduct> subProducts = Model.subproducts as List<SubProduct>;
Это правильный ответ, но есть ли причина, по которой вы хотите иметь дело со списком вместо IList? В большинстве случаев использование IList - лучший выбор. –
IList
@KeithRousseau Я столкнулся с проблемой, когда вам нужно использовать метод AddRange(). – ScubaSteve
List<SubProduct> subProducts= (List<SubProduct>)Model.subproduct;
Неявные failes преобразования, потому что List<>
реализует IList
, а не наоборот. Поэтому вы можете сказать IList<T> foo = new List<T>()
, но не List<T> foo = (some IList-returning method or property)
.
Просто незначительный nitpick: Список
К сожалению, это правильно. – Webleeuw
Как об этом:
List<SubProduct> subProducts = Model.subproduct.ToList();
Это доступно, только если у вас есть доступ к расширениям, определенным в сборке 'System.Linq'. – Suncat2000
Это должен быть принятый ответ. –
В моем случае я должен был сделать это, потому что ни один из предложенных решений не были доступны:
List<SubProduct> subProducts = Model.subproduct.Cast<SubProduct>().ToList();
List<ProjectResources> list = new List<ProjectResources>();
IList<ProjectResources> obj = `Your Data Will Be Here`;
list = obj.ToList<ProjectResources>();
Это преобразует объект IList в объект списка.
Это лучший вариант для преобразования/преобразования списка общего объекта в список строк.
object valueList;
List<string> list = ((IList)valueList).Cast<object>().Select(o => o.ToString()).ToList();
valueList должен быть списком объекта – 2017-11-10 07:50:09
Лучше всего запрограммировать интерфейс (IList) вместо импликации (списка). Это ненужный актерский состав, чтобы перейти в Список. Теперь вам нужно добавить обработку ошибок, если во время реализации реализация IList, которая не является List, вводит этот путь кода. –
Да, но 'IList' не имеет того, что' List' имеет, например 'AddRange' –