【发布时间】:2016-02-25 05:26:49
【问题描述】:
我有两个 List 集合。
List<list<int>> FS = new List<List<int>>();List<List<int> V= new List<List<int>>()
我给FS添加了一些有价值的东西
现在我的FS 看起来像
FS={{1},{2},{3}}
然后我将FS 的值分配给V V = FS
现在我想遍历每一对
//Performing some Logic
for (int i = 0; i < FS.Count-1; i++)
{
for (int k = i + 1; k < FS.Count; k++)
{
List<int> temp = new List<int>();
temp.AddRange(FS[i]);
temp.AddRange(FS[k]);
VF.Add(IP_CFFM(temp));
V.Add(temp);
if (IP_CFFM(temp) > IP_CFFM(FS[i]) && IP_CFFM(temp) > IP_CFFM(FS[k]))
{
FS[i].AddRange(FS[k]);
FS.Remove(FS[k]);
}
}
}
在执行if(condition) 之前V 看起来像V = {{1},{2},{3},{1,2}}
但是在执行FS[i].AddRange(FS[k]); 行之后,列表V 发生了变化,它看起来像{{1,2},{2},{3},{1,2}} 在if(condition) 内,我没有在V 上进行任何操作或执行任何操作。那为什么会这样呢?
【问题讨论】:
-
类永远是引用类型,请通过this document
标签: c# list c#-4.0 ienumerable