• 第十章、使用数组


      数组是无序的元素序列。数组中的所有元素都具有相同的类型。(引用类型)

      声明数组变量

      int [] pins;

      数组元素并非只能使用基本数据类型。数组元素还可以是结构、枚举或者类,例如,为创建由Date结构的数组。

      Date [] dates;

      创建数组实例

      无论元素是什么类型,数组始终都是引用类型

      声明数组变量时不需要指定大小,也不会分配内存(只是将引用存储到栈上)。创建数组实例时才分配内存,数组大小也在这时指定。

      pins = new int[4];

      由于数组实例的内存是动态分配的,所以数组实例的大小不一定是常量;而是可以在运行时计算,例如

      ine size = int.Parse(Console.ReadLine());

      int [] pins = new int[size];

      甚至可以创建大小为0的数组。这虽然听起来有点奇怪,但又是数组大小需要动态决定,而且可以为0,所以这个设计是有意义的。大小为0的数组不是null数组,而是包含0个元素的数组。

      填充和使用数组

      创建数组实例时,所有元素都被初始化为默认值。(如数值初始化为0,对象为null,DateTime为“01/01/000100:00:00”)

      int [] pins = new int[4] {9,3,4,5};

      大括号中的值的数量必须和要创建的数组实例的大小完全匹配

      初始化数组变量时可以省略new表达式和数组大小。编译器将根据初始值的数量来计算大小,并生成代码来创建数组。

      int [] pins = {9,3,4,5};

      创建由结构或对象构成的数组时,可以调用构造器来初始化数组中的每个元素,例如

      Time[] schedule = {new Time(12,30),new Time(5,30)};

      创建隐式类型的数组

      如果在声明数组时指定了初始值列表,就可以让C#编译器自己推断数组元素的类型。

      var names = new [] {"John","Diana","James","Francesca"}

      使用这个语法,必须保证所有初始值都有相同的类型。

      数组作为方法参数和返回类型

      方法可以获取数组类型的参数,也可以把它们作为返回值传递。

      public void ProcessData(int [] data)

      {

      foraech(int i in data)

      {

      .........

      }

      }

      方法要返回一个数组,返回类型必须是数组类型。

      public int[] ReadData()

      {

      ....

      return data;//返回data数组

      }

      复制数组

      要真正复制数组实例,获得堆上的实际数据的拷贝,那么必须做两件事情。首先,必须创建类型和大小与原始数组相同的一个新数组实例,然后将数据元素从原始数组逐个复制到新数组,如下:

      ①

           int [] pins = {1,2,3,4};

      int [] copy = new int[pins.Length];

      for(int i=0;i<copy.length'i++)< p="">

      {

      copy[i] = pins[i];

      }

      ②CopyTo方法将一个数组的内容复制到另一个数组,并从指定的其实索引处开始复制。

      int [] pins = {1,2,3,4};

      int [] copy = new int[pins.Length];

      pins.CopyTo(copy,0);

      ③System.Array的静态方法Copy

      int [] pins = {1,2,3,4};

      int [] copy = new int[pins.Length];

      Array.Copy(pins,copy,copy.Length);

      ④System.Array的实例方法Clone

      int [] pins = {1,2,3,4};

      int [] copy = (int[]pins.Clone);

      多维数组

      二维数组的第一维是表行,第二维是表列。

  • 相关阅读:
    Linux Command
    sql查询将列里面的值替换为别的值但是实际值不变
    MY_SQLCode
    ComboBox设置Text属性
    WPF bmp和二进制转换
    C#中打开文件、目录、保存窗口
    WPF实现右键菜单
    BarTender SDK 实现调用模板条码打印
    VS Code非英语版本连接TFS错误解决方案
    DBeaver连接达梦数据库
  • 原文地址:https://www.cnblogs.com/linhuide/p/5819863.html
Copyright © 2020-2023  润新知