我正在工作的对象列表。我的代码看起来像这样
public class emp
{
public string emp_name{get;set;}
public int emp_id{get;set;}
}
List<emp> emplist = new List<emp>;
emp empobj = new emp();
// fetching data from data table
foreach (DataRow row in ds.Tables[0].Rows)
{
// initialize emp object
empobj.emp_name = row["emp_name"].ToString();
empobj.emp_id = (int)row["emp_id"];
// add empobject to emp list
emplist.add(empobj);
}
如果从表中获取 2 条记录,那么我的列表会显示每个列表对象中的最后一条记录详细信息。
我发现如果我不每次都创建新的 emp 对象并添加到列表中,它也会覆盖列表中的先前值。
解决方案是
// fetching data from data table
foreach (DataRow row in ds.Tables[0].Rows)
{
// create new object every time
emp empobj = new emp();
// initialize emp object
empobj.emp_name = row["emp_name"].ToString();
empobj.emp_id = (int)row["emp_id"];
// add empobject to emp list
emplist.add(empobj);
}
谁能告诉我为什么会这样?