入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

ArrayList和多维数组

创建时间:2010-09-05 投稿人: 浏览次数:1060

MSDN里说:不支持将多维数组用作 ArrayList 集合中的元素。

可是自己试了一下是可以的,包括多维数组和锯齿数组

 

            ArrayList a = new ArrayList();

            // ArrayList集合接受null作为元素,并且支持重复元素.

            a.Add(null);

            //嵌套数组(Array of Array),又叫锯齿数组(Jagged Array),子数组可以不一样长.元素无法被直接访问

            int[][] matrix = new int[2][];

            matrix[0] = new int[2];

            matrix[1] = new int[3];

            a.Add(matrix);

            //多维数组(Multi-Dimensional Array)维度长度固定

            int[,] m = new int[2, 2];

            a.Add(m);

 

            for (int i = 0; i < a.Count; i++)

            {

                if (a[i] == null) continue;

                int[][] item = a[i] as int[][];

                if (item != null)

                {

 

                    for (int j = 0; j < item.Length; j++)

                    {

                        for (int k = 0; k < item[j].Length; k++)

                        {

                            Console.Write(item[j][k]);

                        }

                        Console.WriteLine();

                    }

                }

                else

                {

                    int[,] item2 = a[i] as int[,];

                    for (int j = 0; j < 2; j++)

                    {

                        for (int k = 0; k < 2; k++)

                        {

                            Console.Write(item2[j, k]);

                        }

                        Console.WriteLine();

                    }

                }

 

关于多维数组和嵌套数组的效率问题,有人研究了JIT编译的MSIL指令并做了测试之后,得出嵌套数组其实比多维数组效率高的结论.

http://www.winu.cn/space-14160-do-blog-id-74839.html

 

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像