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

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("");

}

}
...全文
1153 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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)方法取得第二维的长度

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧