繁体   English   中英

在C#中使用类似于Java的多维数组

[英]Working with multidimensional arrays in C# similar to Java

在Java中,我们可以这样做:

bool[][] something = new bool[5][10];

// Then, we can do this, since indexes do not refer to null instances:
something [3][7] = true;

但是,似乎没有在C#中进行编译。 在C#中有等效的方法吗?

语法略有不同:

bool[,] something = new bool[5,10];
// Then, we can do this, since indexes do not refer to null instances:
something [3,7] = true;

或者,如果您使用的是C#3.0+,则可以稍微简化声明:

//Doesn't work for fields.
var something = new bool[5,10];

那是一个多维数组。 您可以参考MSDN以获得更多信息。

问题中的语法将为您提供C#中的锯齿状数组(数组数组)。 这些不同于多维数组(多维数组(具有在内存中连续存储元素的单个数组,具有多维索引))。

我没有在Java上做很多工作,但是一些研究表明Java多维数组类似于C#锯齿状数组,而不是C#多维数组。

要声明和创建数组数组,您可以这样做:

bool[][] something = new bool[5][];

这将创建一个五元素数组,其元素类型为bool[] 您需要单独创建元素(或者也许从其他地方获取对它们的引用)。 这五个数组的长度不必相同:

for (int i = 0; i < something.Length; i++)
    something[i] = new bool[GetLengthForElement(i)];

如果您希望它们全部都是10个元素,那么当然可以这样做:

for (int i = 0; i < something.Length; i++)
    something[i] = new bool[10];

C#,语法略有不同。 很快Google抛出了这个MSDN页面

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM