我在C#里面遇到一个三维数组排序问题请帮忙解决下,谢谢!!
ArrayList[] arr=new ArrayList[3];
arr[0]=new ArrayList();
arr[1]=new ArrayList();
arr[2]=new ArrayList();arr[0].Add(1);
arr[0].Add(4);
arr[0].Add(2);
arr[0].Add(3);arr[1].Add("张三1");
arr[1].Add("张三4");
arr[1].Add("张三2");
arr[1].Add("张三3");arr[2].Add("aaa");
arr[2].Add("ddd");
arr[2].Add("bbb");
arr[2].Add("ccc");怎样根据第一维数据进行排序? 

解决方案 »

  1.   

    我是希望达到排列效果 如以下:1 张三1 aaa
    2 张三2 bbb
    3 张三3 ccc
    4 张三4 ddd
      

  2.   

    你这样岂不是自找麻烦, 还不如声明一个包含
    arr[0] arr[1] arr[2] 这三个字段的结构体,
    然后创建这个结构体的动态数组。
      

  3.   

    再参考下这个:
    http://topic.csdn.net/u/20090526/09/2f797ddb-6612-42e3-8059-ed5b35b031c5.html
    应该可以实现你的要求。
      

  4.   

    一般是创建一个DataTable,然后添加DataRow,或者是声明一个Class,然后创建一个List<T>对象。DataTable有现成的排序方法,List<T>也有排序方法。
      

  5.   

    DataTable 占用资源太多了,可不可以用冒泡那种类型的方式  排出来呢?
      

  6.   

            public ArrayList[] ArrTaxis(ArrayList[] arrLis)
            {
                ArrayList[] arr = arrLis;
                try
                {                
                    for (int i = 0; i < arr[0].Count - 2; i++)
                    {
                        for (int j = 1; j < arr[0].Count - i; j++)
                        {
                            int a = Convert.ToInt32(arr[0][j].ToString().Trim());
                            int b = Convert.ToInt32(arr[0][j - 1].ToString().Trim());
                            if (a < b)
                            {                            ArrayList ar = new ArrayList();
                                ar = (ArrayList)arr[0].Clone();
                                string str1 = ar[j].ToString().Trim();
                                arr[0][j] = arr[0][j - 1];
                                arr[0][j - 1] = str1;                            ArrayList ar2 = new ArrayList();
                                ar2 = (ArrayList)arr[1].Clone();                            string str2 = ar2[j].ToString().Trim();
                                arr[1][j] = arr[1][j - 1];
                                arr[1][j - 1] = str2;                            ArrayList ar3 = new ArrayList();
                                ar3 = (ArrayList)arr[2].Clone();
                                string str3 = ar3[j].ToString().Trim();
                                arr[2][j] = arr[2][j - 1];
                                arr[2][j - 1] = str3;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }            
                return arr;
            }原来是我搞混了