c#中存储数组列表到另一个数组列表

本文关键字:列表 数组 另一个 存储 | 更新日期: 2023-09-27 17:50:03

我想在产品数组列表中插入productDetail

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);
     }

但是product list中的每一项都是用last productdetails ArrayList填充的我在这里做错了什么?

c#中存储数组列表到另一个数组列表

试着移动

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不是每次都复制您的列表…

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);
         }