2
int[] mylist = { 2, 4, 5 };
IEnumerable<int> list1 = mylist;
list1.ToList().Add(1);
// why 1 does not get addedto list1??
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();
IEnumerable的 newList = list1.ToList()添加(1); //你想要的代码 –
jrcs3
2009-01-05 03:05:51
这就像使用String.Replace()时常犯的第一个计时器错误。 – Kev 2009-01-05 04:08:11