ArrayList和多维数组

本文探讨了在C#中使用ArrayList存储多维数组和嵌套数组的可能性,并通过实例展示了如何实现这一过程。此外,文章还引用了一个关于多维数组与嵌套数组效率对比的研究案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值