【发布时间】:2015-10-06 08:17:51
【问题描述】:
我在 C# 中使用List<>。我想在 List 中添加值。但问题是第一项添加成功,但是当第二项将相同的值 ovverride 插入第一项时,例如第一项 abc 插入成功,但是当第二项 xyz 出现时,它 ovveride abc 到 xyz 和这两项显示xyz。这是我的代码。
DataTable dtbl3 = new DataTable();
List<CartItems> lst = (List<CartItems>)Session["mycart"];
dtbl3 = DAL.Get("Select * from mytable");
List<EmailClass> lstCstmer = new List<EmailClass>();
for (int j = 0; j < lst.Count; j++)
{
emailLst.__EmailcstName = dtbl3.Rows[0]["cstm_name"].ToString();
emailLst.__EmailcstLName = dtbl3.Rows[0]["cstm_LName"].ToString();
emailLst.__EmailcstAddress = dtbl3.Rows[0]["cstm_Addr"].ToString();
emailLst.__EmailcstPhoneNo = dtbl3.Rows[0]["cstm_Phone"].ToString();
emailLst.__EmailcstCellNo = dtbl3.Rows[0]["cstm_CellNo"].ToString();
emailLst.__EmailcstskypId = dtbl3.Rows[0]["cstm_skypeId"].ToString();
emailLst.__EmailcstEmail = dtbl3.Rows[0]["cstm_email"].ToString();
emailLst.__EmailcstCountry = dtbl3.Rows[0]["cstm_country"].ToString();
emailLst.__EmailcstCity = dtbl3.Rows[0]["cstm_City"].ToString();
emailLst.__EmailcstZipcode =Convert.ToInt32( dtbl3.Rows[0]["cstm_ZipCode"].ToString());
emailLst.__EmailcstRemarks = dtbl3.Rows[0]["cstm_remarks"].ToString();
emailLst._EmailCartProdName = lst[j]._CartProdName;
emailLst._EmailCartProdPrice = lst[j]._CartProdPrice;
emailLst._EmailCartProdQnty = lst[j]._CartProdQnty;
emailLst._EmailCartProdCode = lst[j]._CartProdName;
emailLst._EmailTotalProdPrice = lst[j]._TotalProdPrice;
lstCstmer.Add(emailLst);
}
【问题讨论】:
-
你在哪里初始化
emailLst实例? -
stackoverflow.com/questions/13659284/…、stackoverflow.com/questions/2156482/…、stackoverflow.com/questions/19156612/… 等等。在网上搜索“C# loop list
add overwrite”,你会发现很多结果。 -
@Shaharyar emailLst 是一个类的实例