List<List<int> > IntListList=new List<List<int>>(); List<int> IntList=new List<int>(); for (int i = 0; i < 8; i++) { IntList.Add(i); } IntListList.Add(IntList); IntList.Clear(); for (int i = 0; i < 8; i++) { IntList.Add(i); } IntListList.Add(IntList); IntList.Clear(); //执行完后IntListList将含有两个长度为0的List<int>,原因就是IntList.Clear(), //导致添加的都变成空的List<int> //也就是我们可以理解:IntListList.Add(IntList);只是添加了对IntList的引用,而没有真正的复制里面的元素 //所以我们应该这样做: List<List<int>> IntListList = new List<List<int>>(); List<int> IntList1 = new List<int>(); List<int> IntList2 = new List<int>(); for (int i = 0; i < 8; i++) { IntList1.Add(i); } IntListList.Add(IntList1); for (int i = 0; i < 8; i++) { IntList2.Add(i); } IntListList.Add(IntList2);
C# List<>.Add一个细节
最新推荐文章于 2024-03-03 16:20:29 发布