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();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top