IList.Add()覆盖现有数据

Opt*_*mus 5 c# ilist

我正面临着向a添加数据IList的问题,但问题是每次添加数据时现有数据都被当前数据覆盖,我的代码如下:

Test test = new Test();
IList<Test> myList = new List<Test>();

foreach (DataRow dataRow in dataTable.Rows)
{
     test.PatientID = Convert.ToInt64(dataRow.ItemArray[0]);
     test.LastName = dataRow.ItemArray[1].ToString();
     test.FirstName = dataRow.ItemArray[2].ToString();
     myList.Add(test);
}
Run Code Online (Sandbox Code Playgroud)

这背后的原因是什么?

Dam*_*ith 11

在循环内移动测试对象

IList<Test> myList = new List<Test>();

foreach (DataRow dataRow in dataTable.Rows)
{   Test test =new Test();
    test.PatientID = Convert.ToInt64(dataRow.ItemArray[0]);
    test.LastName = dataRow.ItemArray[1].ToString();
    test.FirstName = dataRow.ItemArray[2].ToString();
    myList.Add(test);
 }
Run Code Online (Sandbox Code Playgroud)

你目前正在做的是更新test循环中的同一瞬间并一次又一次地添加相同的内容.