数组的定义形式

一、一维数组的定义

类型名[]  数组名;
类型名[]  数组名  =    {  初始值列表  };
类型名[]  数组名  =    new 类型名[ 数组大小 ];
类型名[]  数组名  =    new 类型名[ 数组大小 ] {  初始值列表  };

int[]  nullArray;

int[]  intArray  =  new  int[ 10 ];

double[]  mathConsts  =    {    3.14,  2.71828,  1.414    };

Days[]  holiday  =    new Days[ 2 ]    {    Days.Sat,  Days.Sun    };

  

一维数组的使用示例(1):

 1 static  void  Main(string[]  args)
 2 
 3 {
 4       int[]  intArray ;
 5      intArray=new int[3];
 6     //或者  int[] intArray=new int [3];
 7       intArray[0]= 1;
 8       intArray[1]= 3;
 9       intArray[2]= 5;
10       for  (int i=0; i<intArray.Length; i++)
11       {
12             Console.WriteLine( “intArray[{0}] = {1}”, i,  intArray[i] );
13       }
14 }
View Code

也可以通过intArray.GetLength(0)来访问一维数组的元素个数在 C# 中,一维数组的元数个数是与数组绑定在一起的,

可通过 <数组名>.Length 的形式来获取数组的元素个数,方便对数组进行访问遍历。如果声明时未初始化数组,

则数组成员将自动初始化为该数组类型的默认初始值如果为基本数值类型,数组元素会初始化为0;如果为bool类型,

数组元素会初始化为false;如果数组类型为引用类型(如字符串),则数组元素会初始化为null一维数组的使用示例(2)

 1 static  void  Main(string[]  args)
 2 
 3 {
 4       Days[]  holidays  =
 5       {
 6             Days.Sat,
 7             Days.Sun
 8       };
 9 
10       Console.WriteLine(“Holidays is: “);
11 
12       for  (int i=0; i<holidays.Length; i++)
13       {
14             Console.WriteLine(holidays[i]);
15       }
16 }
View Code

可以在 C# 中定义任意类型的数组,当然也包括自定义类型,如枚举类型和结构类型,以及后面要讲到的类类型。

二、foreach 循环

foreach 循环可用来对数组进行遍历访问,并可简化对数组的访问。是 for 循环的转化形式:

foreach  (数组类型  变量名  in  数组)

{
//  变量是数组中每个元素
}

等价于   《====》

for  (int i=0; i<数组名.Length; i++)
{
      //  在这里使用数组名[i]来遍历数组
}

foreach 循环使用示例

int[]  intArray  =  {  1, 2, 3, 4  };
foreach  (int  element  in  intArray)
{
Console.WriteLine(element);
}

  

 《===》

int[]  intArray  =  {  1, 2, 3, 4  };
for  (int i=0; i<intArray.Length; i++)
{
      Console.WriteLine(intArray[i]);
}

  

用for与foreach访问数组的比较:

1.相同点:都可以循环访问数组每个元素


2.不同点:在foreach中不能直接修改数据的元素,但for可以。如下面的不行:

int[]  intArray  =  {  1, 2, 3, 4  };
foreach  (int  element  in  intArray)
{
element++;
Console.WriteLine(element);
}

  

三、 二维数组

在某些场合,一维数组已不能满足应用的需要了,当需要记录一张表格中的数据时,使用一维数组将很不方便,如需要记录下一张课程表中的数据:

如果使用一维数组的话,用起来将会非常麻烦:必须把二维的表格数据整理条一行存放,用起来不直观!!!

static  void  Main(string[]  args){

      string[]  timetable      ={
            “”,  “C# 程序设计”,  “”,                          //  星期一
            “”,  “C# 程序设计”,  “”,                          //  星期二
            “C# 程序设计”,  “SQL 数据库”,  “”      //  星期三
            “SQL 数据库”,  “C# 程序设计”,  “”      //  星期四
            “”,  “C# 程序设计”,  “SQL 数据库”      //  星期五
      }
      Console.WriteLine(“星期五上午34节果是{0}课”,timetable[ 4 * 3 + 1 ]    //  课程等于  星期 × 每天课数 + 课时
      );
}

  

二维数组的定义

类型名[,]  数组名;

类型名[,]  数组名  =    {  初始值列表  };

类型名[,]  数组名  =    new 类型名[ 行, 列 ];

类型名[,]  数组名  =    new 类型名[ 行, 列 ] {  初始值列表  };

int[,]  intArray  =  new  int[ 10, 20 ];

double[ 2, 3 ]  mathConsts  =    { { 3.14,  2.71828,  1.414 },  { 0.5,  0.25,  0.125 }    };

Days[,]  workDays  =    new Days[ 2, 2 ]    {    { Days.Mon,  Days.Wed },  { Days.Tue,  Days.Thu }  };

  

 二维数组的使用示例(1)

 1 static  void  Main(string[]  args)
 2 {
 3       int[,]  intArray  =  new  int[2, 3]
 4       {
 5             {  1,  3,  5  },
 6             {  2,  4,  6  }
 7       }
 8       for  (int i=0; i<2; i++) 
 9             for  (int j=0;   j<3;  j++)
10             {
11                    Console.WriteLine(
12                           “intArray[{0}, {1}] = {2}”,
13                           i,  j,  intArray[ i, j ]
14                     );
15             }
16 }
View Code

 无法直接得到多维数组每一维的元数个数,使用<数组名>.Length只能得到数组的总元素个数,但可以使用foreach

 循环对多维数组进行遍历。    如果是多维数组,则可以使用GetLength()方法确定其某一特定维的长度,

 例如:<数组名>.GetLength(0);   //获取数组第一维的长度<数组名>.GetLength(1);   //获取数组第二维的长度

二维数组的使用示例(2)

 1 static  void  Main(string[]  args)
 2 {
 3       int[,]  intArray  =  new  int[2, 3]
 4       {
 5             {  1,  3,  5  },
 6             {  2,  4,  6  }
 7       }
 8 
 9       foreach  (int  element  in  intArray)
10       {
11             Console.WriteLine(element);
12       }
13 }
View Code

多维数组(矩形数组)

交错型数组(不规则数组)

不在总结,很少用到!

原文地址:https://www.cnblogs.com/izhiniao/p/3450561.html