int[] intTest = new int [] {1,3,4,5};
string [] strTest = new string[] {"str1","str2","str3","str4"};arraylist arr = new arraylist();
arr.add(intTest);
arr.add(strTest);此时arr.count应该是2没错吧?可是为什么不应该是8?两个数组元素想加起来的个数?arr.toarray()这个方法用的时候。当不知道arr里面的数组是什么类型的时候,如何把它转换成array?arr[0]---->当这个又不清楚为何类型的数组时。又如何把它赋值给数组呢?

解决方案 »

  1.   

    arraylist里面存储的数组要是是不同类型的,如何使用toarray这个方法?
      

  2.   

    arr.count 不可能是8把它看成多维数组的 来理解
      

  3.   


    囧!arr.ToArray()转成System.Object数组有问题吗?
    如果你知道数据类型当然可以调用arr.ToArray(Type type);
      

  4.   

    LZ 怎么理解它是8的? 我不明白
      拿forche 循环下 
        关键字打错了     
    你循环下  跟踪循环 就能看出来..
      

  5.   

    问题是arraylist里面存储的数组的类型有非常多种类。
    就算全部转换成obejct[]之后。那总得再转换成原有数组的类型。
    这点咋整?
      

  6.   

    int[] intTest = new int [] {1,3,4,5};
    string [] strTest = new string[] {"str1","str2","str3","str4"};arraylist arr = new arraylist();
    arr.add(intTest);
    arr.add(strTest); 
    arr.count是2 arraylist arr = new arraylist();
    arr.addrange(intTest);
    arr.addrange(strTest); 
    arr.count 就是8
      

  7.   

    不是我要把它理解成8.
    而是我调试的时候arraylist里面只有一个数组,数组的长度为8.我调用arraylist.count的时候它显示的就是8,所以我就纳闷了
      

  8.   


    转换原有的数据类型你自己转呗,你还想自动转啊自动转你就自己写个方法把
    Type t = arr[0].GetType();
    if (t.Equals(typeof(int[])))
    {
                    Console.Write("");
    }
      

  9.   

    要是完全不知道arraylist里面数组的类型。这怎么转换?