【发布时间】:2020-08-14 20:50:19
【问题描述】:
我习惯使用其他语言的数组,但我是 C# 新手,我想知道如何获取二维数组的子数组。
这是我尝试过的:
int[,] arr = new int[4, 4];
int[] childArr = arr[0];
我的错误是“索引数量错误1' inside [], expected 2”。问题是,我想要子数组,而不是子数组中的东西,我认为错误告诉我要处理第二个索引。
感谢您的帮助。
【问题讨论】:
-
你能定义你所说的“子数组”是什么意思吗?您是否正在寻找类似this
-
您可以将您的二维数组实现为jagged array (
int[][] arr = new int[4][];)。然后你可以用你想要的方式访问它:int[] childArr = arr[0]。但要小心,因为这种结构并不强制所有“子”数组具有相同的长度(这就是术语“锯齿状”的来源)。 .NET 针对一维数组进行了优化,因此根据您的使用情况,锯齿状数组的处理可能比二维数组执行得更快。但二维数组更易于读取、初始化和管理。