码迷,mamicode.com
首页 > 编程语言 > 详细

C#数组

时间:2016-01-08 21:55:26      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:

同一类型和不同类型的多个对象:

如果需要使用同一类型的多个对象,就可以使用集合或者数组.

 

简单数组:

如果需要使用同一类型的多个对象,就可以使用数组,数组是一种数据结构,它可以包含同一类型的多个元素.

 

数组的声明:int [] myArray   数组类型+方括号+变量名=数组

 

数组的初始化:数组声明后就可以为数组分配内存,数组是引用类型,所以给它分配堆上的内存,初始化数组使用new运算符.

如:myArray = new int[4] //数组中元素的类型和数量来初始化数组的变量.

等价于int [] myArray = new int[4];

 

数组初始化器:

数组初始化器只能在声明数组变量时使用,不能再声明数组之后使用.

如:int [] myArray = new int [4] {4,7,11,2};

int [] myArray = new int [] {4,7,11,2}; //不指定数组的大小,因为初始化器会自动统计元素的个数.

int [] myArray = {4,7,11,2};

 

访问数组元素:

声明和初始化数组后应使用索引器访问其中的元素.索引器只支持整数参数.

索引器由0开始,索引器最大值是元素个数减1,如果使用错误的索引器值,就是抛出IndexOutOfRangeException类型的异常.

如果不知道数组中元素个数,可以使用myArray.Length属性.也可以使用Foreach语句迭代数组中的所有元素.

注:上述均为预定义的数组.

 

使用引用类型:

如:public class Person

{

  public string FirstName{get;set;}

  public string LastName{get;set;}

  

  public override string ToString()

  {

    return String.Format("{0} {1}",FirstName,LastName);

  }

}

声明一个包含两个Person元素的数组:Person[] myPersons = new Person[2];

注意:数组中元素是引用类型.就必须为每个数组元素分配内存.如果使用了未分配内存的元素,就会抛出NullReferenceException类型的异常.

元素为引用类型的数组分配内存:myPersons[0] = new Person {FirstName = "Ayrton",LastName = "Senna"};

可以为引用类型使用数组初始化器:Person [] myPersons2 =

                {

                  new Person{FirstName = "Ayrton",LastName = "Senna"}

                    ....................................................

                  }

 

多维数组:

一维数组用一个整数来索引,多维数组用多个整数来索引.

如:int[,] twodim = new int [3,3];

多维数组使用数组初始化器:

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

注意:多维数组使用数组初始化器,必须初始化数组的每个元素,不能遗漏任何元素.

 

锯齿数组:int[][] jagged = new int[3][];

锯齿数组只有第一个方括号中设置行数,第二个方括号设置为空.

迭代锯齿数组需要在两层for循环中进行,外层迭代每一行,内层迭代每一个元素.

如果数组包含的元素个数超出了整数的取值范围,可以使用LongLength属性来获得元素个数,使用Rank属性获得数组的维数.

如:        static void Main(string[] args)
        {
            int[][] jagged = new int[3][];
            Console.WriteLine(jagged.LongLength);
            Console.WriteLine(jagged.Rank);
            Console.ReadKey();
        }

C#数组

标签:

原文地址:http://www.cnblogs.com/cheny3636/p/5055207.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!