如何获得二维数组第二维的长度?

shi_hang_nk 中创软件昆山公司 副总工程师  2007-08-19 08:32:36
大家好,我写了如下的代码相输出一个二维数组的内容,但是不知如何获取第二维的长度,请高手指点。
void outputArray(int[,] array)
{
for (int i = 0; i < array.Length; i++)
{

        // 这里不知如何取第二维,下面的写法编译失败
for (int j = 0; j < ((Array)(array[i])).GetLength(); j++)
{
System.Console.Write("{0} ", array[i, j]);
}
System.Console.WriteLine("");

}

}
...全文
900 点赞 收藏 13
写回复
13 条回复
lhy03188 2012年10月04日
本人经验证,i <= array.Rank;应该是 <= 就输出正确结果了
回复 点赞
lhy03188 2012年10月04日
学习了好多,谢谢各位大侠
回复 点赞
gucheng789 2010年07月01日
都是一些牛人啊··
顶死···
回复 点赞
he_8134 2007年08月21日
如果那样写都算正确的话真是千古奇冤了!!!

class Program
{
static void Main(string[] args)
{
int[,] array = new int[3, 3];
array[0, 0] = 0;
array[0, 1] = 1;
array[0, 2] = 2;
array[1, 0] = 3;
array[1, 1] = 4;
array[1, 2] = 5;
array[2, 0] = 6;
array[2, 1] = 7;
array[2, 2] = 8;
for (int i = 0; i < array.Rank; i++)
{
for (int j = 0; j <= array.GetUpperBound(array.Rank - 1); j++)
{
System.Console.WriteLine("{0} ", array[i, j]);
}
System.Console.WriteLine();
}
Console.Read();
}
}

你看看都输出什么了???
回复 点赞
shoushii 2007年08月20日
array.GetUpperBound(array.Rank-1)+1
回复 点赞
vrhero 2007年08月20日
你那个就错的明显了
for (int i = 0; i < array.Rank; i++)

array.Rank明显是等于2了,因为是二维数组
------------------
这算错误?笑话...

老手和新人的差别可见一斑...
回复 点赞
-过客- 2007年08月19日
呵呵,那还称不上错误吧,这里这样写或许没必要,不过做为通用方法,这样利于扩展
回复 点赞
he_8134 2007年08月19日
呵呵,我是在你的代码基础上修改的~~没留意多一个=

你那个就错的明显了
for (int i = 0; i < array.Rank; i++)

array.Rank明显是等于2了,因为是二维数组
回复 点赞
-过客- 2007年08月19日
请教楼上,那样写为什么是错误的,我也是才接触这个,欢迎指出错误,愿意学习


PS:楼上的代码显然没有经过测试
for (int j = 0; j <= array.GetLength(1);j++)
这里多了一个=号
for (int j = 0; j < array.GetLength(1);j++)
回复 点赞
he_8134 2007年08月19日
明明已经知道是个2维数组~~直接GetLength方法就行了~~
2楼的方法明显错误,楼上还在叫好~我狂晕~~~

static void outputArray(int[,] array)
{
for (int i = 0; i < array.GetLength(0); i++)
{
for (int j = 0; j <= array.GetLength(1);j++)
{
System.Console.Write("{0} ", array[i, j]);
}
System.Console.WriteLine();
}
}
回复 点赞
piaoyao888 2007年08月19日
楼上写的程序相当不错:
array.GetUpperBound(array.Rank-1)+1代表的是这个数组的长度
其中array.Rank代表的是该数组的总的纬数,该函数的参数从零开始
回复 点赞
-过客- 2007年08月19日
try

static void outputArray(int[,] array)
{
for (int i = 0; i < array.Rank; i++)
{
for (int j = 0; j <= array.GetUpperBound(array.Rank - 1); j++)
{
System.Console.Write("{0} ", array[i, j]);
}
System.Console.WriteLine();
}
}
回复 点赞
he_8134 2007年08月19日
object[][]跟object[,]可不是一回事哦~~

int[,] array
用array.GetLength(1)方法取得第二维的长度
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.5w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告