C# C列表获得相同的值
哦,请有人给我解释一下为什么会这样C# C列表获得相同的值,c#,list,C#,List,哦,请有人给我解释一下为什么会这样 public List<EmployeeHeader> GetEmployees() { List<EmployeeHeader> eh = new List<EmployeeHeader>(); string query = "SELECT " + " firstName, lastName " +
public List<EmployeeHeader> GetEmployees()
{
List<EmployeeHeader> eh = new List<EmployeeHeader>();
string query = "SELECT " +
" firstName, lastName " +
"FROM" +
" tbEmployee ";
DBConnect db = new DBConnect();
DataTable dt = new DataTable();
dt = db.getBD(query);
int CountRows = dt.Rows.Count;
EmployeeHeader emp = new EmployeeHeader();
for(int i = 0; i < CountRows; i++)
{
emp.firstName = dt.Rows[i]["firstName"].ToString();
emp.lastName = dt.Rows[i]["lastName"].ToString();
eh.Add(emp);
}
return eh;
最终的结果是
<ArrayOfEmployeeHeader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.istec.pt/">
<EmployeeHeader>
<firstName>Hugo</firstName>
<lastName>Almeida</lastName>
</EmployeeHeader>
<EmployeeHeader>
<firstName>Hugo</firstName>
<lastName>Almeida</lastName>
</EmployeeHeader>
<EmployeeHeader>
<firstName>Hugo</firstName>
<lastName>Almeida</lastName>
</EmployeeHeader>
<EmployeeHeader>
<firstName>Hugo</firstName>
<lastName>Almeida</lastName>
</EmployeeHeader>
<EmployeeHeader>
<firstName>Hugo</firstName>
<lastName>Almeida</lastName>
</EmployeeHeader>
</ArrayOfEmployeeHeader>
永远是同一个名字!!!我已经调试过了,一步一步地,正确的名字正在进入列表,但最后。。。我有相同的名字
可能是个愚蠢的错误,但请有人帮我指一下好吗
谢谢您正在设置同一实例的属性。将下面的行放在循环内:
EmployeeHeader emp = new EmployeeHeader();
像这样试试
for(int i = 0; i < CountRows; i++)
{
EmployeeHeader emp = new EmployeeHeader();
emp.firstName = dt.Rows[i]["firstName"].ToString();
emp.lastName = dt.Rows[i]["lastName"].ToString();
eh.Add(emp);
}
for(int i = 0; i < CountRows; i++)
{
EmployeeHeader emp = new EmployeeHeader();
emp.firstName = dt.Rows[i]["firstName"].ToString();
emp.lastName = dt.Rows[i]["lastName"].ToString();
eh.Add(emp);
}
for(int i = 0; i < CountRows; i++)
{
EmployeeHeader emp = new EmployeeHeader();
emp.firstName = dt.Rows[i]["firstName"].ToString();
emp.lastName = dt.Rows[i]["lastName"].ToString();
eh.Add(emp);
}