日期:2014-05-18  浏览次数:21222 次

请问,这个List集合怎么没有跟着变化呢?
listBox20的项是Class1对象

然后,我声明一个变量lis:
List<Class1> lis = listBox20.Items.Cast<Class1>().ToList(); //Cast方法,把Items转换成List集合


当我不定期的listBox20.Items.Add元素的时候,lis为什么没有跟着变化呢?List<T>不是引用类型吗?



------解决方案--------------------
ToList()生成的List是另一个对象,指向不同的引用。和listBox20完全是两个对象。
------解决方案--------------------
这就好比 string a = listBox20.ToString();
你不能指望 listBox20里添加了东西,a也会跟着变一样的道理吧?
------解决方案--------------------
var list = listBox20.Items;
list.Add(...)