Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

C# 多维数组


多维数组

在上一章中,您学习了数组,也称为**一维数组**。这些非常棒,并且在使用 C# 编程时您会经常使用它们。但是,如果您想以表格形式存储数据,例如带有行和列的表格,则需要熟悉**多维数组**。

多维数组基本上是数组的数组。

数组可以具有任意数量的维度。最常见的是二维数组 (2D)。


二维数组

要创建一个二维数组,请将每个数组放在自己的花括号中,并在方括号内插入逗号(,)

示例

int[,] numbers = { {1, 4, 2}, {3, 6, 8} };

值得注意的是:单个逗号[,]指定数组是二维的。三维数组将有两个逗号:int[,,]

numbers现在是一个数组,其元素是两个数组。第一个数组元素包含三个元素:1、4 和 2,而第二个数组元素包含 3、6 和 8。为了形象化,可以将数组视为一个带有行和列的表格


访问二维数组的元素

要访问二维数组的元素,必须指定两个索引:一个用于数组,另一个用于该数组内的元素。或者更好的是,牢记表格可视化;一个用于行,一个用于列(请参见下面的示例)。

此语句访问numbers数组中**第一行 (0)** 和**第三列 (2)** 中元素的值

示例

int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
Console.WriteLine(numbers[0, 2]);  // Outputs 2

自己试试 »

请记住:数组索引从 0 开始:[0] 是第一个元素。[1] 是第二个元素,依此类推。


更改二维数组的元素

您还可以更改元素的值。

以下示例将更改**第一行 (0)** 和**第一列 (0)** 中元素的值

示例

int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
numbers[0, 0] = 5;  // Change value to 5
Console.WriteLine(numbers[0, 0]); // Outputs 5 instead of 1

自己试试 »


遍历二维数组

您可以使用foreach循环轻松遍历二维数组的元素

示例

int[,] numbers = { {1, 4, 2}, {3, 6, 8} };

foreach (int i in numbers)
{
  Console.WriteLine(i);
} 

自己试试 »

您也可以使用for 循环。对于多维数组,每个数组维度都需要一个循环。

另请注意,我们必须使用GetLength()而不是Length来指定循环应运行多少次

示例

int[,] numbers = { {1, 4, 2}, {3, 6, 8} };

for (int i = 0; i < numbers.GetLength(0); i++) 
{ 
  for (int j = 0; j < numbers.GetLength(1); j++) 
  { 
    Console.WriteLine(numbers[i, j]); 
  } 
}  

自己试试 »


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.