今天写程序的时候用到泛型集合,先前定义了一个泛型集合List<FilesInfo> filesList_A=new List<FilesInfo>()里面的FilesInfo是我记录的一些关于文件的信息。
如果我想再创建一个泛型集合的话,List<FilesInfo> filesList_B=new List<FilesInfo>()如果对B集合赋filesList_B=filesList_A的话,将A集合清空,filesList_A.Clear(),由于泛型集合是引用类型所以B集合也会被清空,那么如果我想在A集合清空之前将A中的数据全部赋给B的话,是否只能通过遍历的办法也就是foreach(FilesInfo file in filesList_A)
{ filesList_B.Add(file); } 。有没有其他的办法呢?谢谢大家,主要考虑到效率的问题。
如果我想再创建一个泛型集合的话,List<FilesInfo> filesList_B=new List<FilesInfo>()如果对B集合赋filesList_B=filesList_A的话,将A集合清空,filesList_A.Clear(),由于泛型集合是引用类型所以B集合也会被清空,那么如果我想在A集合清空之前将A中的数据全部赋给B的话,是否只能通过遍历的办法也就是foreach(FilesInfo file in filesList_A)
{ filesList_B.Add(file); } 。有没有其他的办法呢?谢谢大家,主要考虑到效率的问题。
解决方案 »
- CreatFont中字体粗细虽然设置100-900不同值,但实际只有2种?
- winform 如何获得窗体上的最小化,最大化和关闭按钮的宽度
- windows窗体程序,socket接收信息,未将对象引用设置到对象的实例
- C# 读取MDB中的某一列
- 如何在2005中使用autoupdater实现程序自动更新?
- 用C#如何获得IE正要访问的地址?
- 保留2位小数的问题!
- .net中所带的部署工具的问题。好象功能弱了点。
- 新人又来求助啦~C# 可以把Excel中的部分内容选中然后插入到Word指定位置吗?
- 我是初学者,能请教C#是怎样一种语言?
- 三种常用的字符串判空串方法比较 那种效率比较高?
- 在线求助,给个C# 仿VS工具箱的例子
List<FilesInfo> filesList_B=new List<FilesInfo>()
filesList_B=filesList_A
后,filesList_B和filesList_A都指向一个List<FilesInfo>对象。List<FilesInfo> filesList_B=new List<FilesInfo>()
foreach(FilesInfo file in filesList_A)
{ filesList_B.Add(file); }
后,filesList_B和filesList_A指向不动的List<FilesInfo>对象。但是List<FilesInfo>中的Item都各自指向同同样的FilesInfo对象。也就是filesList_B[0]和filesList_A[0]指向同一个对象,依次类推。这样的赋值只是针对引用,并不是将整个FilesInfo对象进行复制,因此 对效率影响并不大。
这跟 T 类型是不是类没有关系,如果是 List<int> 一样会这样。
// 如果真要这么做,但是有不想麻烦的话,就直接使用 ToList 方法,
List<int> a = new List<int> { 1, 2, 3, 4 };
List<int> b = a.ToList();
a.Clear();
Console.WriteLine(b.Count);