一维Array转化为ArrayList,用ArrayList(Array)就行,二维就不行了,求助,谢谢

解决方案 »

  1.   


                ArrayList lst = new ArrayList();
                 int[,] C = new int[2,2];
                //..........
                foreach(int i in C)
                {
                    lst.Add(i);
                }
      

  2.   

    ArrayList应该算是一维数组,要怎样转换?如果没有规则的话用2楼的方法就可以。
      

  3.   

    for (int i = 0; i < dim2valueList.Count;i++ )
                {
                    string[,] dim2Value = (string[,])dim2valueList[i];
                }
    得到的ArrayList是一维的,我想要二维的
      

  4.   

    ArrayList是{1,2,3,4}不是二维的,我想要{{1,2}{3,4}}
      

  5.   

    首先,ArrayList实质上是泛型接口IList的实现,而IList本身就是一维的。所以从ArrayList的角度看,其元素是按一维排列的。你的要求,可以理解为以array对象为元素的ArrayList,大致可以表示为下面这样,不知合不合你的意?
    int[] e1 = new int[] {1,2};
    int[] e2 = new int[] {3,4};
    ArrayList arraylist = new ArrayList();
    arraylist.Add(e1);
    arraylist.Add(e2);
      

  6.   

    ArrayList本身就是一维的,这是与Array不同的地方,所以···
      

  7.   

    对,将Array二维数组转化为Arraylist后,转化为string[,]时报错,说ArrayList对象不能转化为
    string[,]
      

  8.   


    int[][] arr={{11,12},{21,22}};
    ArrayList arraylist = new ArrayList();
    for(int i=0;i<arr.size();++i)
    {
      ArrayList temp= new ArrayList();
      arraylist.add(temp);
      for(int j=0;j<arr[i].size();++j)
      {
        temp.add(arr[i][j]);
      }
    }
      

  9.   


    将ArrayList转化为string[,]时,
    for (int i = 0; i < dim2valueList.Count;i++ )
                {
                    string[,] dim2Value = (string[,])dim2valueList[i];//报错,无法将类型为“System.Collections.ArrayList”的对象强制转换为类型“System.String[,]”。
      

  10.   


    Array是类,假设array是Array实例化后的对象。你的目的,是将array里的内容,按维度和列,转换成一个一维的ArrayList。那么,试试如下的代码段:
    // 构造一个5x3的二维数组
    int[,] arrayInt = new int[,] {{2,4,7},{3,9,11},{5,8,10},{15,27,36},{1,5,28}};// int[,] 本质上也是类Array实例化的一个对象
    Array array = arrayInt;ArrayList list = new ArrayList();
    IEnumerator enumerator = array.GetEnumerator();
    while (enumerator.MoveNext())
        list.Add(enumerator.Current);foreach (int i in list)
        Console.WriteLine(i);
    结果:
    2
    4
    7
    3
    9
    11
    5
    8
    10
    15
    27
    36
    1
    5
    28
      

  11.   


    我要是的二维的ArrayList
    按照
    int[][] arr={{11,12},{21,22}};
    ArrayList arraylist = new ArrayList();
    for(int i=0;i<arr.size();++i)
    {
      ArrayList temp= new ArrayList();
      arraylist.add(temp);
      for(int j=0;j<arr[i].size();++j)
      {
        temp.add(arr[i][j]);
      }
    }
    得到的
    但是
    将ArrayList转化为string[,]时,
    for (int i = 0; i < dim2valueList.Count;i++ )
      {
      string[,] dim2Value = (string[,])dim2valueList[i];//报错,无法将类型为“System.Collections.ArrayList”的对象强制转换为类型“System.String[,]”。
    谢谢
      

  12.   

    string[,] dim2Value = (string[,])dim2valueList[i]dim2valuelist是个ArrayList,不支持你这样向string[,]的转换。因为ArrayList本身是一维的,不提供Rank维度等信息。换个角度,假设有个Arraylist有6个元素,你要转换成string[,],那么是要转换成string[2,3]还是string[3,2]呢?ArrayList是没法替你做出这个判断的。
      

  13.   


    ArrayList是从二维Array转换来的啊,比如{{1,2}{3,4}}