C# 如何在C语言的2d数组中获取内部数组的长度?
假设我创建了一个锯齿状的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
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[][]”。