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"};