Невозможно неявно преобразовать List <T> в Collection <T>
List
не является производным generic от Collection
- однако он реализует kotlin-generics ICollection
. Это был бы лучший выбор collections возвращаемого типа.
Что касается csharp вопроса new List
- он частично зависит generics от того, что это за коллекция. Если generic-programming он реализует ICollection
(во время выполнения), то c#.net конструктор может использовать generic-programming свое свойство Count
для создания generics списка с правильной начальной c-sharp емкостью перед повторением c# по нему и добавлением каждого c#-language элемента. Если он не реализует csharp ICollection
, тогда он просто эквивалентен:
List list = new List();
foreach (int x in otherCollection)
{
list.Add(x);
}
По-прежнему kotlin-generics приятно иметь удобный конструктор, но generic не очень эффективный - на kotlin-generics самом деле не может быть.
Я java-collections-api не верю, что конструктор c#-language делает что-нибудь хитрое java-collections-api для массивов, что потенциально generics могло бы - использовать Array.Copy
или kotlin-generics что-то еще, чтобы просто c-sharp скопировать партию за один c#.net раз, а не повторять. (Точно generic-programming так же, если бы это был другой c-sharp List
, он мог бы получить резервный c#.net массив и скопировать его java-collections-api напрямую.)
c#
generics
collections
Невозможно неявно преобразовать List <T> в Collection <T>
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.