LIST<t> 添加实体值被覆盖问题
List<Model.CP_PATIENT_ORDER> list = new List<Model.CP_PATIENT_ORDER>();
List<int> test = new List<int>();
for (int l = 0; l < dsphaselq.Tables[0].Rows.Count; l++)
{
Model.CP_PATIENT_ORDER model = modelCporder;
model.PHASE_ID = dsphaselq.Tables[0].Rows[l]["PHASE_ID"].ToString();
model.ORDER_ID = GetNewObject.GetNewID(8);
list.Add(model);//此处添加的值被覆盖
test.Add(l); //此处不覆盖
} c# .net list 泛型
[解决办法]
Model.CP_PATIENT_ORDER model = modelCporder;
=>
Model.CP_PATIENT_ORDER model = new Model.CP_PATIENT_ORDER();
[解决办法]
你要知道,INT是值类型,Model.CP_PATIENT_ORDER是引用类型
[解决办法]
你所添加的均是对同一对象的引用,故相同
new
-------------
Model.CP_PATIENT_ORDER model = modelCporder;
=>
Model.CP_PATIENT_ORDER model = new Model.CP_PATIENT_ORDER();
[解决办法]
从哪冒出来一个modelCporder,其实你每次都是添加它
[解决办法]
1楼正解。
这就是值类型和引用类型的区别。