C# 数组

创建数组

数组用于在单个变量中存储多个值,而不是为每个值声明单独的变量。

要声明数组,请定义带方括号的变量类型:

string[] cars;

现在我们已经声明了一个包含字符串数组的变量。

要向其中插入值,我们可以使用数组文字-将值放在逗号分隔的列表中,放在大括号内:

string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};

要创建整数数组,可以编写:

int[] myNum = {10, 20, 30, 40};

访问数组的元素

通过引用索引号可以访问数组元素。

此语句访问 cars 中第一个元素的值:

实例

string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
Console.WriteLine(cars[0]);
// 输出 Volvo

运行实例 »

注释: 数组索引从0开始,[0]开头是第一个元素,[1] 是第二个元素。


更改数组元素

要更改特定元素的值,请参阅索引编号:

实例

cars[0] = "Opel";

实例

string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
cars[0] = "Opel";
Console.WriteLine(cars[0]);
// 现在输出 Opel 而不是 Volvo

运行实例 »



数组长度

要了解一个数组有多少个元素,请使用Length 属性:

实例

string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
Console.WriteLine(cars.Length);
// 输出 4

运行实例 »


遍历数组

可以使用for循环遍历数组元素,并使用Length属性指定循环应运行的次数。

以下示例输出 cars 数组中的所有元素:

实例

string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
for (int i = 0; i < cars.Length; i++) 
{
  Console.WriteLine(cars[i]);
}

运行实例 »


foreach 循环

还有一个foreach循环,专门用于循环数组中的元素:

语法

foreach (type variableName in arrayName) 
{
  // 要执行的代码块
}

以下示例使用foreach遍历循环输出cars数组中的所有元素:

实例

string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
foreach (string i in cars) 
{
  Console.WriteLine(i);
}

运行实例 »

上面的例子可以这样理解: 打印cars数组中的每个字符串元素 (索引为 i)的索引值。

如果比较for循环和foreach循环,您将看到foreach方法更容易编写,它不需要计数器(使用Length属性),而且可读性更强。


排序数组

有许多可用的数组方法,例如Sort(),它将按字母降序或升序对数组进行排序:

实例

// 对字符串进行排序
string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
Array.Sort(cars);
foreach (string i in cars)
{
  Console.WriteLine(i);
}
// 对整数进行排序
int[] myNumbers = {5, 1, 8, 9};
Array.Sort(myNumbers);
foreach (int i in myNumbers)
{
  Console.WriteLine(i);
}

运行实例 »


System.Linq 命名空间

其他有用的数组方法,如 Min, Max, Sum,可以在System.Linq命名空间找到:

实例

using System;
using System.Linq;

namespace MyApplication
{
  class Program
  {
    static void Main(string[] args)
    {
      int[] myNumbers = {5, 1, 8, 9};
      Console.WriteLine(myNumbers.Max());  // 返回最大值
      Console.WriteLine(myNumbers.Min());  // 返回最小值
      Console.WriteLine(myNumbers.Sum());  // 返回元素的总和
    }
  }
}

运行实例 »

在后面的章节中,您将了解其他命名空间的更多信息。


创建数组的其他方法

如果您熟悉C#,您可能会看到使用new关键字创建的数组,也可能会看到具有指定大小的数组。在C#中,创建数组有不同的方法:

// 创建一个包含四个元素的数组,稍后添加值
string[] cars = new string[4];

// 创建一个包含四个元素的数组并立即添加值
string[] cars = new string[4] {"Volvo", "BMW", "Ford", "Mazda"};

// 创建一个由四个元素组成的数组而不指定大小
string[] cars = new string[] {"Volvo", "BMW", "Ford", "Mazda"};

// 创建一个包含四个元素的数组,省略 new 关键字,并且不指定大小
string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};

选择哪一个选项取决于你自己的习惯。在我们的教程中,我们经常使用最后一个选项,因为它更快更容易阅读。

请注意,如果声明数组并稍后初始化它,则必须使用new关键字:

// 声明一个数组
string[] cars;

// 添加值,使用 new
cars = new string[] {"Volvo", "BMW", "Ford"};

// 不使用 new 添加值(这会导致错误) cars = {"Volvo", "BMW", "Ford"};

运行实例 »


C# 实验

学习训练

练习题:

创建一个名为carsstring字符串类型数组。

  = {"Volvo", "BMW", "Ford", "Mazda"};

开始练习