将arraylist存储到c#中的另一个arraylist中

时间:2011-04-14 11:36:00

标签: c# list arraylist

我想在产品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。 我在这里做错了什么?

2 个答案:

答案 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每次都没有复制您的列表......