首页 > 程序开发 > 软件开发 > C# >

C#3.0学习笔记(6)详谈数组

2011-11-01

1, 数组的定义及重要细节?  定义:数组是由一个变量名称表示的一组同类型的数据元素,每个元素通过变量名称和一个或多个方括号的索引名称来访问。  注意:1> 数组一旦被创建,大小就固定了。C#不支持动态...

1, 数组的定义及重要细节?

  定义:数组是由一个变量名称表示的一组同类型的数据元素,每个元素通过变量名称和一个或多个方括号的索引名称来访问。

  注意:1> 数组一旦被创建,大小就固定了。C#不支持动态数组。

  2> 数组索引号从0开始。也就是说如果维度长度是n,索引号范围是从0到n-1。

  3> 数组属于引用类型,即引用在栈上或堆上,但是数组对象本身总是在堆上。

2, 数组的分类?

  1> 一维数组

  2> 矩形数组(即某个维度的所有子数组有相同长度)

  3> 交错数组s(即可以有不同长度的子数组)

3, 数组的声明,初始化和遍历数组元素?

  一维数组:

namespace array1

{

class Program

{

static void Main(string[] args)

{

//int[] arr1;//声明数组

//arr1 = new int[] { 10, 20, 30, 40, 50 };//初始化数组

int[] arr1 = new int[] { 10, 20, 30, 40, 50 };//声明和初始化可以一步完成。等价于:int[] arr1 = { 10, 20, 30, 40, 50 };//快捷语法

//var arr1 = new[] {10, 20, 30, 40, 50 }; //隐式类型数组。

//遍历数组

//方法一:使用for循环:

for (int i = 0; i < arr1.Length; i++)

{

Console.WriteLine("数组元素{0}的值为:{1}",i,arr1[i]);

}

//方法二:使用foreach语句:

//foreach (int item in arr1)//迭代变量item表示数组中的每一个元素。

//{

// Console.WriteLine("元素的值为:{0}", item);

//}

Console.ReadKey();

}

}

}

  程序输出结果为:

\

  二维数组(矩形数组):

namespace array2

{

class Program

{

static void Main(string[] args)

{

int[,] arr2 = new int[,] { {0,1,2},{10,11,12}};//声明和初始化二维数组。

//遍历数组

//方法一:使用for循环:

//for (int i = 0; i < 2; i++)

//{

// for (int j = 0; j < 3; j++)

// {

// Console.WriteLine("元素[{0},{1}]的值为:{2}",i,j,arr2[i,j]);

// }

//}

//方法二:使用foreach语句:

foreach (int item in arr2) //对于多维数组,元素的处理次序是最右边的索引号最先递增的,当索引从0到长度减1时,下一个左边的索引被递增,右边的索引被重置为0.

{

Console.WriteLine("元素的值分别为:{0}",item);

}

Console.ReadKey();

}

}

}

  程序输出结果为:

\

交错数组:

namespace arr3

{

class Program

{

static void Main(string[] args)

{

int[][] arr3 = new int[2][];

/*交错数组的实例化过程如下:

首先,实例化顶层数组。

其次,分别实例化每一个子数组,把新建数组的引用赋值给包含它们的数组的合适元素

*/

arr3[0] = new int[] { 10,11};

arr3[1] = new int[] { 12,13,14};

//遍历数组:

foreach (int[] array in arr3)

{

Console.WriteLine("Starting new array");

foreach (int item in array)

{

Console.WriteLine("数组的元素分别为:{0}",item);

}

}

Console.ReadKey();

}

}

}

  程序输出结果为:

\

4, 数组的一些重要属性和方法总结?

namespace array4

{

class Program

{

static void Main(string[] args)

{

int[] arr4 = new int[] { 15,20,5,25,10};

PrintArray(arr4);

Console.WriteLine();//换行

Array.Sort(arr4);//方法Sort,排序,默认为升序

PrintArray(arr4);

Console.WriteLine();

Array.Reverse(arr4);//方法Reverse,反转

PrintArray(arr4);

Console.WriteLine();

Console.WriteLine();

Console.WriteLine("维度为:{0},长度为:{1}", arr4.Rank, arr4.Length);//属性Rank表示数组维度,属性Length表示数组长度。

Console.WriteLine("GetLength(0)={0}", arr4.GetLength(0));//方法GetLength()表示返回数组中指定维度的长度。

Console.WriteLine("GetType()={0}", arr4.GetType());//方法GetType()表示返回数组类型。

Console.ReadKey();

}

protected static void PrintArray(int[] a)

{

foreach (int item in a)

{

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

Console.Write("");//在每个数组元素后面加一空格。

}

}

}

}

  程序输出结果为:

\

哎,很晚了,要睡觉了,先总结到这儿吧,不足的部分请大家补充补充啊!



作者 永远的麦子。
相关文章
最新文章
热点推荐