假设我有List<Stuff> listA一些内容.我创建了第二个列表如下:
List<Stuff> listB = new List<Stuff>(listA);
Run Code Online (Sandbox Code Playgroud)
假设我有一个项目listA,我尝试将其删除listB:
Stuff itemFromA = listA[0];
listB.Remove(itemFromA);
Run Code Online (Sandbox Code Playgroud)
假设Stuff是一个类,是否应该成功删除该项listB?换句话说,成员是相同的对象还是创建新列表的过程克隆项目?
我在一些代码中遇到行为我正在调试.Remove无法从中删除项目listB.
dtb*_*dtb 11
所述列表<T>构造(IEnumerable的<T>)并不克隆的项目.
对于值类型,将复制该值,对于引用类型,将对同一对象的引用添加到列表中.
List<object> listA = new List<object>();
listA.Add(new object());
List<object> listB = new List<object>(listA);
bool result = object.ReferenceEquals(listA[0], listB[0]);
// result == true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1348 次 |
| 最近记录: |