我想在产品arraylist中插入productDetail arraylist
ArrayList products = new ArrayList();
ArrayList productDetail = new ArrayList();
foreach (DataRow myRow in myTable.Rows) { productDetail.Clear(); productDetail.Add( "CostPrice" + "," + myRow["CostPrice"].ToString()); products.Insert(myTable.Rows.IndexOf(myRow),(object)productDetail); }
但产品列表中的每个entery都填充了最后一个productdetails ArrayList。 我在这里做错了什么?
答案 0 :(得分:1)
productDetails只有一个项目。
你的第一步是productDetail.Clear();
将它移到foreach之外以获得所需的结果。
ArrayList products = new ArrayList();
ArrayList productDetail = new ArrayList();
productDetail.Clear();
foreach (DataRow myRow in myTable.Rows)
{
productDetail.Add( "CostPrice" + "," + myRow["CostPrice"].ToString());
products.Insert(myTable.Rows.IndexOf(myRow),(object)productDetail);
}
答案 1 :(得分:1)
尝试移动
ArrayList productDetail = new ArrayList();
在foreach
循环中:
ArrayList products = new ArrayList();
foreach (DataRow myRow in myTable.Rows) {
ArrayList productDetail = new ArrayList();
productDetail.Add( "CostPrice" + "," + myRow["CostPrice"].ToString());
products.Insert(myTable.Rows.IndexOf(myRow),(object)productDetail);
}
关键是,在您的代码中,您总是添加对同一对象的引用:Insert
每次都没有复制您的列表......