假如现在我定义了一个ArrayList newResults = new ArrayList();
并向newResults里添加了product_name,price,master_id   我将newResults传递给另外一个ArrayList alReslut
   通过foreach (string al in alReslut)遍历
        if (al.Equals("product_name"))
       {
          dt.Columns.Add("商品名称");
       }
       else if (al.Equals("price"))
       {
          dt.Columns.Add("金额");
       }
       else if (al.Equals("master_id"))
       {
          dt.Columns.Add("单据号");
       }
问题是我怎样能将al里的master_id更改为master.master_id并保存?
         谢谢?

解决方案 »

  1.   

    int _Index = alReslut.IndexOf("master_id");
                alReslut[_Index] = "master.master_id";
      

  2.   

    如果你想在循环中 更改,不要用foreach 因为它不能更改 要用for
    你可以把索引记住 根据索引设置新值
      

  3.   

      请问5楼
      用for怎么循环,设置索引,并更改?
      

  4.   

    看的我晕乎的. 为什么要迭代? 直接循环, 找到就可以直接更改了。 ...ArrayList al = new ArrayList();
    al.Add(12);
    al.Add(13);
    al.Add(14);for(i=0;i<al.length;i++)
    {
      if(Convert.ToInt32(al[i]) == 12)
      {
           al[i] = needReplaceValue;
      }
    }
    ....
      

  5.   

    我也不知道这样行不行。呵呵 List<string> strAL = new List<string>();
     strAL.Add("product_name");
     strAL.Add("price");
     strAL.Add("master_id");
     List<string> strAL2 = strAL;
     strAL2[strAL2.FindIndex(findstr => findstr.Equals("master_id"))] = "master.master_id"; foreach (string str in strAL2)
         System.Console.WriteLine(str);
      

  6.   

    int index = 0;
                for (int i = 0; i < alReslut.Count; i++)
                {
                    if (alReslut[i].ToString() == "master_id")
                    {
                        index = i;
                    }
                }
                alReslut[index] = "master.master_id";