注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

I? =Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

数组、索引器和集合(二)  

2010-12-22 19:33:26|  分类: C# & .NET |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

前面介绍了数组的基本知识和一维数组的简单操作,这里来说说多维数组。

5.多维数组

前面介绍的是传统的一维数组,事实上数组可以是多维的,设想一个矩阵,它有行和列的属性,这在C#中就对应了一个二维数组。另外,计算机图形中的变换矩阵也是二维的。C#中支持两种不同的多维数组,规则的(Rectangular)和不规则的(Jagged),规则的数组每行长度相同,而不规则数组各行的长度是不完全相同的。事实上,可以把二维数组理解为数组的数组。

二维数组的申明如下:

类型名[,] 数组名;

例如:

int[,] arr2d;

初始化则如下:

arr2d = new int[3, 4];

将初始化一个三行四列的二维数组。和前面类似,申明和初始化可以一步到位。不过这里要使用签到的花括号,如下:

int[,] arr2d1 ={ { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };

下面的例子演示如何遍历并修改二维数组元素。

int[,] arr2d = new int[3, 4];

for (int i = 0; i < 3; i++)

{

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

    {

        arr2d[i, j] = i + j;

    }

}

不规则数组

不规则数组是真正意义上的数组组成的数组,每行元素个数不完全相同,创建不规则数组的话,需要预先申明许多行,其中每行都是一个数组,这些数组都是要申明的。不规则数组申明方法如下:

数组类型[][] 数组变量;

例如下面的申明:

int[][] JaggedArr;

初始化将可以指定不规则数组的行数,如下:

int[][] JaggedArr=new int[3][];

这样创建了一个三行的不规则数组。

下面的例子将演示一个不规则数组的创建和输出:

using System;

using System.Collections.Generic;

using System.Text;

namespace Castor

{

    class Program

    {

        //程序入口

        static void Main(string[] args)

        {

            int[][] JaggedArr = new int[3][];

            int[] row1 = new int[3] { 1, 2, 3 };

            int[] row2 = new int[5] { 4, 5, 6, 7, 8 };

            int[] row3 = new int[4] { 7, 6, 5, 4 };

            JaggedArr[0] = row1;

            JaggedArr[1] = row2;

            JaggedArr[2] = row3;

            //输出

            foreach (int[] arr in JaggedArr)

            {

                foreach (int i in arr)

                {

                    Console.Write("{0} ", i);

                }

                Console.WriteLine();

            }

            Console.ReadLine();

        }

    }

}

运行效果如下:

数组、索引器和集合(二) - Castor - 趁年轻,多折腾~~

 

注意不规则数组包含的是数组元素,而不是基本类型的元素,所以必须遍历每个子数组,然后才能遍历该数组中的每个元素。可见不规则的数组比较复杂,通常使用规则数组即可,不过话说回来,如果需要使用变长数组,程序的效率并不会降低。

  评论这张
 
阅读(735)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016