C# Winform 关于list.AddRange(xx)和list=xx的一个疑问
代码1:
selectConsumableInputList.FindAll(a => a.detailList == null || a.detailList.Count == 0).ForEach(a => a.detailList = detailManage.LoadOrderedDetailList(a.ID, consumaInputDetailFiled));
代码2:
selectConsumableInputList.FindAll(a => a.detailList == null || a.detailList.Count == 0).ForEach(a => a.detailList.AddRange(detailManage.LoadOrderedDetailList(a.ID, consumaInputDetailFiled)));
发现使用代码1的话,selectConsumableInputList里面除了第一个对象的detailList之外,其他的对象的detailList都是最后一个对象的detailList,而使用代码2就是正常的,selectConsumableInputList里面每个对象的detailList都是它对应的;
想请问下这是什么原因导致的?
回答
代码过于复杂,没看懂,但肯定与引用类型有关。
THE END
二维码