C# 数组教程:创建、声明、初始化

C# 中的数组是什么?
数组用于存储元素的集合或一系列。这些元素将是同一类型。
例如,如果您有一个整数值数组,则该数组可以是 [1, 2, 3, 4] 之类的值的集合。这里数组中的元素数量为 4。
当你想存储一组相同类型的值时,数组非常有用。因此,与其声明一个 变量 对于每个元素,您只需声明一个变量。
该变量将指向一个元素数组或列表,负责存储数组的元素。
让我们看看如何在 C# 中使用数组。在我们的示例中,我们将声明一个整数数组并相应地使用它们。
请注意,以下所有代码均已添加到 Program.cs 文件中。
步骤1) 声明数组 – 第一步是声明一个数组。让我们通过以下代码示例看看如何实现这一点。
Code 解释:-
- 第一部分是 数据类型。它指定数组中使用的元素类型。因此,在我们的例子中,我们创建了一个整数数组。
- 第二部分 [ ],指定数组的秩。(秩是一个占位符,指定数组将包含的元素数量)
- 接下来是数组的名称,在我们的例子中是“值”。请注意,您会看到一条绿色波浪下划线,不用担心。这只是 .Net 表示您已声明了一个数组,但没有在任何地方使用它。
步骤2) 下一步是初始化数组。在这里,我们将指定数组将保存的值的数量。我们还将为数组的每个元素分配值。
Code 解释:-
- 首先,我们将数组将保存的元素数量设置为 3。因此在方括号中,我们表示数组将保存 3 个元素。
- 接下来,我们要给数组中的每个元素赋值。我们可以通过指定变量名加上数组中的索引位置来实现。所以 `values[0]` 表示我们将值存储在数组的第一个位置。类似地,要访问第二个位置,我们使用 `values[1]`,依此类推。
注意:: – 在数组中,索引位置从 0 开始。
步骤3) 现在让我们在控制台中显示数组的各个元素。让我们添加以下代码来实现这一点。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Int32[] value; value=new Int32[3]; value[0]=1; value[1]=2; value[2]=3; Console.WriteLine(value[0]); Console.WriteLine(value[1]); Console.WriteLine(value[2]); Console.ReadKey(); } } }
Code 解释:-
这是简单的部分,其中我们只使用 Console.WriteLine 方法将元素的每个值发送到控制台。
再次注意,我们借助数组变量名以及索引位置来访问每个元素。
如果正确输入上述代码并执行程序,将显示以下输出。
输出:
从输出中,您可以看到数组的所有值都显示在控制台中。
如何使用 foreach 循环遍历 C# 数组
按索引读取每个元素虽然可行,但当数组包含大量值时会变得非常繁琐。foreach 循环提供了一种更简洁的方式,可以按顺序访问数组中的每个元素,而无需 trac自己定义一个索引变量。
foreach 语句会逐个从数组中取出元素,并将其复制到一个循环变量中。然后在循环体内使用该变量。由于循环会在到达最后一个元素时自动停止,因此 foreach 避免了读取数组末尾之外元素的风险。
using System; namespace DemoApplication { class Program { static void Main(string[] args) { Int32[] values = new Int32[3] {1, 2, 3}; foreach (Int32 item in values) { Console.WriteLine(item); } Console.ReadKey(); } } }
上面的例子声明并初始化了一个包含三个整数的数组,然后使用 foreach 循环遍历该数组。每次遍历时,变量 项目 接收到下一个值后,Console.WriteLine 会将其打印出来。输出结果是分别在三行上显示数字 1、2 和 3。
关于使用数组的 foreach 循环,需要记住的关键点:
- 循环变量是只读的,因此 foreach 最适合读取值而不是就地更改值。
- 在查看时修改元素ping请使用带索引的 for 循环代替。
- foreach 可以用于一维数组、多维数组以及任何支持迭代的集合。
C# 多维数组
目前展示的数组都是一维数组,这意味着它们存储的是一个简单的数值列表。C# 也支持多维数组,多维数组的元素以行和列的网格形式排列。二维数组是最常见的数组形式,适用于矩阵、棋盘和表格等数据。
您可以通过在方括号内放置逗号来声明二维数组。每增加一个逗号,数组就会增加一个维度,因此 `int[,]` 表示二维数组,而 `int[,,]` 表示三维数组。然后,可以通过每个维度的索引来访问数组元素。
using System; namespace DemoApplication { class Program { static void Main(string[] args) { int[,] matrix = new int[2, 2] { {1, 2}, {3, 4} }; Console.WriteLine(matrix[0, 0]); Console.WriteLine(matrix[1, 1]); Console.ReadKey(); } } }
这里,数组 matrix 包含两行两列。元素 matrix[0, 0] 返回 1,matrix[1, 1] 返回 4。数组的维度数在声明时就已确定,而每个维度的大小在创建数组时设置。
C# 锯齿数组
交错数组是指元素本身也是数组的数组。与矩形多维数组不同,交错数组的每个内部数组的长度可以不同,因此它也被称为“数组的数组”。这种灵活性在行值数量自然不同的情况下非常有用。
您可以使用两组方括号声明一个交错数组,然后分别创建每个内部数组。以下示例创建了一个交错数组,其中第一行包含三个值,第二行包含两个值。
using System; namespace DemoApplication { class Program { static void Main(string[] args) { int[][] jagged = new int[2][]; jagged[0] = new int[] {1, 2, 3}; jagged[1] = new int[] {4, 5}; Console.WriteLine(jagged[0][2]); Console.WriteLine(jagged[1][1]); Console.ReadKey(); } } }
表达式 jagged[0][2] 读取第一行的第三个元素,即 3,而 jagged[1][1] 读取第二行的第二个元素,即 5。由于每一行都是一个单独的数组,因此当行长度变化时,交错数组可以有效地利用内存,尽管它们需要额外的步骤来初始化每个内部数组。




