Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C语言的2d数组中获取内部数组的长度?_C#_Arrays - Fatal编程技术网

C# 如何在C语言的2d数组中获取内部数组的长度?

C# 如何在C语言的2d数组中获取内部数组的长度?,c#,arrays,C#,Arrays,假设我创建了一个锯齿状的2d数组,如下所示: public static char[,] phoneLetterMapping = { {'0'}, {'1'}, {'A', 'B', 'C'} }; 现在,给定数组的第一个索引,我想确定内部数组的长度 我希望能够做到以下几点: phoneLetterMapping[2].length phoneLetterMapping[0].Length; 我可以用Java实现。但是,当我在[][]2d数组的第一个括号中键入时,Intellisense

假设我创建了一个锯齿状的2d数组,如下所示:

public static char[,] phoneLetterMapping = { {'0'}, {'1'}, {'A', 'B', 'C'} };
现在,给定数组的第一个索引,我想确定内部数组的长度

我希望能够做到以下几点:

phoneLetterMapping[2].length
phoneLetterMapping[0].Length;
我可以用Java实现。但是,当我在[][]2d数组的第一个括号中键入时,Intellisense菜单不会返回数组的正常成员


如何在C中获取2d数组的内部数组长度?

您正在查找GetLength

 phoneLetterMapping.GetLength(dimension)

你在找GetLength

 phoneLetterMapping.GetLength(dimension)

您发布的声明甚至不会用C语言编译,这是您的主要问题

您已经使用char[,]声明了一个二维的非锯齿数组,但是您正试图通过使用{{0'}、{1'}、{a',B',C'}在=的右侧实例化一个锯齿数组

现在,如果您以不同的方式声明:

public static char[][] phoneLetterMapping = { new[] { '0' }, new[] { '1' }, new[] { 'A', 'B', 'C' } };
然后,您可以简单地调用如下内容:

phoneLetterMapping[2].length
phoneLetterMapping[0].Length;

然而,您最初发布的代码行不会用C编译。

您发布的声明甚至不会用C编译,这是您的主要问题

您已经使用char[,]声明了一个二维的非锯齿数组,但是您正试图通过使用{{0'}、{1'}、{a',B',C'}在=的右侧实例化一个锯齿数组

现在,如果您以不同的方式声明:

public static char[][] phoneLetterMapping = { new[] { '0' }, new[] { '1' }, new[] { 'A', 'B', 'C' } };
然后,您可以简单地调用如下内容:

phoneLetterMapping[2].length
phoneLetterMapping[0].Length;

但是,您最初发布的代码行不会在C中编译。

在C中,有两种类型的2d数组:

实二维阵列和阵列的交错阵列

在您的例子中,您使用了2d数组的语法,如果您想要获得它的长度,您需要调用GetLength并指定dimension。在您的情况下,它是1 0,实际上您的代码不会编译,因为您的数组不是矩形的-这是2d数组必须的


如果您想要一个jabbed数组,请参见:

在C中,有两种类型的2d数组:

实二维阵列和阵列的交错阵列

在您的例子中,您使用了2d数组的语法,如果您想要获得它的长度,您需要调用GetLength并指定dimension。在您的情况下,它是1 0,实际上您的代码不会编译,因为您的数组不是矩形的-这是2d数组必须的


如果您想要一个jabbed数组,请参见:

一个锯齿数组甚至不能以OP想要的方式声明,因此这不起作用。一个锯齿数组甚至不能以OP想要的方式声明,因此这不起作用。请注意,char[,]与其他语言不同,不是一个锯齿数组。这是一个真正的多维数组。锯齿状字符数组应该是“char[][]”。请注意,char[,]不像其他语言中那样是锯齿状数组。这是一个真正的多维数组。锯齿形字符数组将是“char[][]”。