c#list覆盖问题

use*_*082 0 c# gridview list

我有一些代码如下所示,它将a的值写入gridview列表,如图所示.代码确实获得了正确的值,但是当网格的第二行添加到列表时,它会覆盖列表的第一行.
谁知道为什么会这样?

C#代码

 List<Item> lstNewItems = new List<Item>(); // Control Items  
 lstNewItems.Clear();
 Item NewItem = new Item();
 foreach (GridViewRow PendingItemUnderControl in GridViewPendingList.Rows)
 {
    NewItem.Paramater = PendingItemUnderControl.Cells[0].Text.ToLower();
    NewItem.Type = (String)Session["BrowseType"];
    lstNewItems.Add(NewItem);
 }
Run Code Online (Sandbox Code Playgroud)

Zbi*_*iew 7

您正在创建一个Item类实例.它发生在你的循环之前,所以实际上你正在处理同一个对象.您需要在循环内创建新实例(在每次迭代中):

List<Item> lstNewItems = new List<Item>(); // Control Items  
lstNewItems.Clear();

foreach (GridViewRow PendingItemUnderControl in GridViewPendingList.Rows)
{
    Item NewItem = new Item();
    NewItem.Paramater = PendingItemUnderControl.Cells[0].Text.ToLower();
    NewItem.Type = (String)Session["BrowseType"];
    lstNewItems.Add(NewItem);
}
Run Code Online (Sandbox Code Playgroud)