题
int[] mylist = { 2, 4, 5 };
IEnumerable<int> list1 = mylist;
list1.ToList().Add(1);
// why 1 does not get addedto list1??
解决方案
为什么会这样? ToList()生成一个新的List,并将值'1'添加到它。由于您不存储返回,因此当新列表超出范围时,会抛出新列表。
ToList()不会更改原始IEnumerable对象list1或给出新的表示(如果有的话,它将被称为AsList())。
其他提示
你需要:
int[] mylist = { 2, 4, 5 };
IEnumerable<int> list1 = mylist;
List<int> lst = list1.ToList();
lst.Add(1);
mylist = lst.ToArray();
不隶属于 StackOverflow