第五章 数组(一)

1. 简单数组

    数组是引用类型,数组的初始化必须指定大小。如果无法指定可以使用集合。(集合是后面的内容)

    数组元素是值类型(此时的值类型存在托管堆上)

 

数组元素是引用类型

 

2.多维数组

  多维数组的定义 二维:int[,] 三维: int[,,]

  ex 三维数组的声明:int[,,] threedim={

                                                      {{1,2},{3,4}},

                                                      {{5,6},{7,9}}

                                                       };

3 锯齿数组

  

 

    ex 锯齿数组定义:

     int[][] jagged =new int[3][];

     jagged[0] =new int[2]{1,2};

     jagged[1] =new int[6]{3,4,5,6,7,8};

     jagged[2] = new int[3]{9,10,11};

锯齿数组的访问

    for(int row=0;row<jagged.Length; row++)

      {

         for(int element =0; element <jagged[row].Length;element)

              {

                 Console.WriteLine(jagged[row].[element]);s

               }

        }

 

4 Array类

   Array类是一个抽象类,不能使用构造函数来创建数组。可以使用静态方法CreateInstance()创建数组。如果事先不知道元素的类型,就可以使用该静态方法。

  ex : Array intArray1 =Array.CreateInstance(typeof(int),5);

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

           {

              intArray1.SetValue(33,i);

            }

            

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

            {

                Console.WriteLine(intArray1.GetValue(i));

               }

     强制转换 int[] intArray2 =(int[]) intArray1;

   CreateInstance() 方法有许多重载版本。可以创建多维数组和不基于0下标的数组。

   ex: int[] lengths={2,3};定义维数

           int[] lowerBounds ={1,10}; 定义开始下标

          Array racers=Array.CreateInstance(typeof(Person),lengths,lowerBounds);

 

数组复制:IClonable 接口定义的Clone()方法会创建数组的浅副本。如果数组元素是值类型,会复制所有的值。如果元素是引用类型,只复制引用。改变复制后的值,原数组的值也会改变。

  Clone() 和 Array.copy()的区别: Clone()会创建一个新的数组。Copy() 只是将原数组拷贝到另外一个已经存在的结束相同,有足够元素空间的数组中。

 

排序:(这个我有被笔试到,很不幸那个时候不知道该怎么做。)

  Array的 Sort方法需要数组中的元素实现IComparable接口。 string 和 int 实现了这个接口,所以可以对包含这些类型的元素排序。

  对于定制的类要实现IComparable 的CompareTo()方法。这个方法在类中实现

ex   (ps: 我懒啊。代码都不敲的,直接贴图。会有报应的!!)

 

  也可以实现IComparer 接口的Compare()方法。(PS:已经贴了一次,索性贴到底啊。报应啊,报应。)

 

  使用 Array(persons,new PersonComparer(PersonComparer.PersonCompareType.Firstname));

 

发现自己写的越来越多,感觉什么都不能少一样。抓不住重点。一个数组还要分成两个部分写。。。效率啊。。。

 

posted on 2010-12-27 23:01  小齐宝  阅读(166)  评论(0)    收藏  举报

导航