Преобразование ICollection <T> в список <T>

Я пытаюсь преобразовать ICollection в List, используя ниже код -

ICollection<DataStructure> list_Stuctures = dataConnectorService.ListStructures(dataConnector, SupportedDataStructures.All);

List<DataStructure> lst_DataStructure = new List<DataStructure>();

list_Stuctures.CopyTo(lst_DataStructure);

В последней строке я получаю ниже исключения -

Exception = TargetParameterCountException

Сообщение = Несоответствие счетчика параметров.

Как преобразовать ICollection в список?

Ответ 1

Самый простой способ преобразования ICollection в List - использование LINQ like (MSDN)

List<T> L = C.ToList();

Не забудьте добавить

using System.Linq;

иначе ToList() недоступен.

Ответ 2

Вы можете предоставить коллекцию в качестве аргумента в конструкторе List<T>:

List<DataStructure> lst_DataStructure = new List<DataStructure>(list_Stuctures);

Или используйте метод расширения .ToList(), который делает то же самое.

Ответ 3

Держите его простым, ToList:

List<DataStructure> lst_DataStructure = list_Stuctures.ToList();

Ответ 4

Поскольку ICollection реализует IEnumerable, вы можете использовать foreach.

foreach(var item in list_Stuctures) 
{
  lst_DataStructure.ADD(item);
}

Ответ 5

Вы можете только для каждого из них ^^

foreach (DataStructure ds in list_Stuctures)
   lst_DataStructure.Add(ds);