微软提供了list 类型,表示可通过索引访问的对象的强类型列表。提供用于对列表进行搜索、排序和操作的方法。非常好用,能够按照实际使用的元素个数来动态增加数组长度。
可是在传值的时候发现,该类型是引用类型,举个例子
List<int> list1 = new List<int>();
list1.add(1);
list1.add(2);
list1.add(3);
List<List<int>> list2 = new List<List<int>>();
list2.add(list1);
list1.clear();
最后list2中第一个元素的count为0,是因为list2中传入的是list1的索引,所以当list1的索引在传给list2后改变了值,list2中的第一个元素的值随之改变。
使用ToList 方法,可新建内存空间,使用不同的索引储存list1中的值,并且改变list1的值,并不会影响list2的值。
List<int> list1 = new List<int>();
list1.add(1);
list1.add(2);
list1.add(3);
List<List<int>> list2 = new List<List<int>>();
list2.add(list1.ToList());
list1.clear();