C# 数组

2018-01-16 01:19 更新

C#数组

数组表示特定类型的固定数量的变量。

在元素类型后面创建一个带方括号的数组。

例如:


char[] letterArray = new char[5]; // Declare an array of 5 characters 

在元素类型后面创建一个带方括号的数组。


letterArray[0] = 'a'; 
letterArray[1] = 'e'; 
letterArray[2] = 'i'; 
letterArray[3] = 'o'; 
letterArray[4] = 'u'; 
Console.WriteLine (letterArray[1]); // e 

我们可以使用for循环语句来遍历数组中的每个元素。


for (int i = 0; i < letterArray.Length; i++) {
    Console.Write (letterArray[i]); // aeiou 
}

数组的Length属性返回数组中元素的数量。

创建数组后,无法更改其长度。

数组初始化表达式可以在一个步骤中声明和填充数组:


char[] letterArray = new char[] {'a','e','i','o','u'}; 

或简单为:


char[] letterArray = {'a','e','i','o','u'}; 

所有数组都继承自System.Array类,为所有数组提供通用服务。

默认元素初始化

创建数组总是使用默认值预先初始化元素。

例如,考虑创建一个整数数组。因为int是一个值类型,所以分配1000个整数。

每个元素的默认值为0:


int[] a = new int[1000]; 
Console.Write (a[123]); // 0 

值类型与引用类型

当元素类型是值类型时,每个元素值将作为数组的一部分分配。

例如:


struct Point { 
  public int X, Y; 
} 

Point[] a = new Point[1000]; 
int x = a[500].X; // 0 

如果Point是一个类,创建数组将只分配10个空引用:


class Point { 
  public int X, Y; 
} 

Point[] a = new Point[10]; 
int x = a[5].X; // Runtime error, NullReferenceException 

要避免此错误,请在实例化数组后显式实例化Point值:


Point[] a = new Point[10]; 
for (int i = 0; i < a.Length; i++){ // Iterate i from 0 to 9
    a[i] = new Point();             // Set array element i with new point 
}

数组本身始终是引用类型对象,不管元素类型如何。

例如,以下是合法的:


int[] myArray = null; 
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号