2014-10-06 89 views
0

能否告诉我如何将2维数组列表复制到另一个数组列表而不引用相同的数组实例?如何将2D数组列表复制到另一个

void partial_entropy(List<List<String>> class_lables)//This 2D "class_lables" arraylist contains many elements 
{ 
    List<List<String>> lables1 = new List<List<String>>(); 
    lables1 = class_lables; //copying old arraylist to new array list called "lables1" 
    //if I copy using the above method, both refer to same array instance. 

    //Therefore, I would like to use something like "CopyTo" method 
    class_lables.CopyTo(lables1, 0);//This did not work 

    for (int x = 0; x < lables1.Count; x++)//To print out the newly copyed 2D array 
    { 
      for (int y = 0; y < 1; y++) 
      { 
        Console.Write(lables1[x][y]+" "); 
        Console.WriteLine(lables1[x][y+1]); 
      } 
    } 
} 
+0

最坏的情况下,你可以通过class_lables循环,并添加项目lables1 – Gowtham 2014-10-06 06:12:51

回答

1
List<string> tempList=new List<string>(); 
foreach (List<String> lst in class_lables) 
{ 
    foreach (string str in lst) 
      tempList.Add(str); 
    lables1.Add(tempList); 
    tempList.Clear(); 
} 
+0

@DP。好。我编辑了答案。希望它解决了这个问题。否则,请告诉我你遇到错误的哪一行。 – 2014-10-06 05:54:09

+0

感谢您的更新。错误仍然发生在同一个地方:'Console.Write(lables1 [x] [y] +“”);'。错误说,“索引超出范围。必须是非负值且小于集合的大小。“ – 2014-10-06 05:57:03

+0

@DP。总是使用'foreach'而不是'for'循环来防止这些错误。除此之外,它有效吗? – 2014-10-06 06:00:37

相关问题