赋值赋出的怪异结果
这是这两个变量唯一有关联得地方
C# code
List<TB_CoolegeDepatPost_Person> DepatPosList = new List<TB_CoolegeDepatPost_Person>();
BingListByDepatPosti(out DepatPosList);
CacheDepatPosiList = DepatPosList; //CacheDepatPosiList是一个自定义的属性
DepatPosiList = DepatPosList; //DepatPosiList是一个全局变量
然后我在一个方法中对其中一个变量进行了赋值
C# code
int a = CacheDepatPosiList.Count;
DepatPosiList.Remove(Items);//
int b =CacheDepatPosiList.Count;
一切都是那么正常。。。但是当我执行的时候却诡异的发现当我执行 DepatPosiList.Remove(Items);这句代码的时候CacheDepatPosiList的值也会被删掉一个。。。于是就出现了
a是3
b是2
小弟百思不得其解啊。。。这到底是为啥呢?
虽然以前VS给我报过1==1是错误的这种高智商问题。。但是这回小弟断点,和F11都用烂了。。依然不晓得为啥。。
跪求技术帝。。跪求牛人。。跪求高人。。跪求一切能解释此现象的高人。。。。。
------解决方案--------------------
List拷贝不能 list1 = list2;
要 list1 = list2.ToList();
或者
list1 = new List<T>();
foreach (var item in list2)
{
list1.Add(item);
}