C # коллекция - PullRequest
       5

C # коллекция

2 голосов
/ 05 января 2009
int[] mylist = { 2, 4, 5 };
IEnumerable<int> list1 = mylist;
list1.ToList().Add(1);
// why 1 does not get addedto list1??

Ответы [ 2 ]

18 голосов
/ 05 января 2009

С чего бы это? ToList () генерирует новый список, и к нему добавляется значение «1». Поскольку вы не сохраняете возврат, новый список затем отбрасывается, когда он выходит из области видимости.

ToList () не изменяет исходный список объектов IEnumerable1 и не дает новое представление (оно будет называться AsList (), если это будет сделано).

1 голос
/ 05 января 2009

Вам необходимо:

int[] mylist = { 2, 4, 5 };
IEnumerable<int> list1 = mylist;
List<int> lst = list1.ToList();
lst.Add(1);
mylist = lst.ToArray();
...