数组总结笔记

经常看数组每次都看自己的笔记,分享下吧。 

1.数组声明和初始化

由于数组是引用类型,所以应该用new来初始化数组。

(1)一维

Int[] a={1,2};//这样也可以的。

Int[] a=new int[2]{1,2};//定大小(元素个数与数组大小必须匹配)

Int[] a=new int[]{2,3,3};//由值定义大小

Int[] a=new int[size];//常量定义

Const int size=3;

(2)多维

Int[,] a=new int[2,2];

Int[,] a={{1,2},{2,3}};//

用数组初始化器(用字面值初始化)时,必须指定每个元素的值,不能遗漏。

针对一维数组可以用foreach来循环访问每个元素。

Foreach(int I in myInt){}

(3)变长数组

注意:子数组是不能指定的,而必须分开指定。

例:Int[][] a;

a=new int[2][];

a[0]=new int[4];

a[1]=new int[5];

或 a=new int[2][]{new int[]{1,2},new int[]{3,4}};

例:int[][] a={new int[]{1,2,3},new int[]{3,3,3}};

 

2Array类

此类是作为所有数组的虚基类,当用C#语法声明了数组,实际上就继承了它的方法和属性。

属性 说明

Length 返回元素个数,返回int型,如果多维数组,返回所有阶的元                                         素个数

Longlength 返回元素个数,只是用Long型返回的。

Rank 返回数组的维数

常用方法

CreateInstance(),SetValue(),Sort()

3.迭代器

迭代器的定义是,它是一个代码块,按顺序提供了要在foreach循环中使用的所有值,一般情况下,这个代码块是方法,但也可以使用属性访问器和其代码块作为迭代器。

(1)如果要迭代一个类,使用方法GetEnumerator(),其返回类型是IEnumerator就可以了。

(2)如果要迭代一个类成员,例如方法,则返回类型IEnumerable。

在迭代器块中,使用yeild关键字选择要在foreach循环中使用的值。可以使用yield return;来中止返回值。

Public static IEnumerable SimpleList()//迭代一个类成员

{

Yield return “str1”;

Yield return “str2”;

}

Foreach(string item in SimpleList){}

Public IEnumerator GetEnumerator()//如果类中存在这个方法并且返回相应接口就可以迭代一个类。一般类重写IEnumerable接口来实现,泛型和非泛型都实现

{

Yield return “ok”;

 

 

}

 

posted @ 2013-10-23 21:07  勿念  阅读(263)  评论(0编辑  收藏  举报