读书人

LISTlt;tgt; 添加实体值被覆盖有关问题

发布时间: 2013-07-11 15:38:46 作者: rapoo

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楼正解。

这就是值类型和引用类型的区别。

读书人网 >C#

热点推荐