请教获取二维数组的一维元素

各位高手,大家好,我是一名C#初学者,请教大家个问题:
int[,] abc=new int [3,3]{{1,2,3},{4,5,6},{7,8,9}}
我想单独获取二维数组中的一个元素,如{1,2,3}这个元素
但我用int[] def=abc[0]时,vs2010报错说“[]内的索引数目有误,应为2”。个人不是很明天为什么。还请高手赐教。
是不是如果int[][]这样的交错数组就可以这样表示,那多维数组下如何获取一维的元素呢?

首先应该是int[,] abc={{1,2,3},{4,5,6},{7,8,9}} //这么写才正确
或者是int[,] abc=new int[3,3] //这样写也正确
获取{1,2,3}这个元素,可以做成字符串,我就不做了,下边代码就帮你输出元素
/*****************************************************************************/
int[,] abc={{1,2,3},{4,5,6},{7,8,9}}
for(int i=0;i<abc.getlength(1);i++)
{
console.write(abc[0,i]);
}
/*****************************************************************************/
其中,getlength(1)指的是第二维的长度,getlength(0)当然就是第一维的长度。
abc[0,i]指的就是第一维第一组,i遍历第二维的元素,有点绕口,反正就这么回事。
如果还不清楚,自己手动输出abc[0,0],abc[0,1],abc[0,2]看结果
//报错说“[]内的索引数目有误,应为2”就是这个问题。输出是abc[0,0]而不是abc[0][0]追问

您好,非常感谢您的回答。
我并不是想要输出字符串,其实我是想从这个多维数组中获取到各个一维数组元素,将一维数组元素作为另一个函数的参数用。
我测试后也发现:
int[3,3] abc 和 int[3][3] def
abc[0]//error
def[0]//ok
我就是想了解如何获取多维数组的小一维的元素。还请您赐教。非常感谢!

追答

再加个for循环,反正一维一个for
int[,] abc={{1,2,3},{4,5,6},{7,8,9}}
for(int i1=0;i1<abc.getlength(0);i++)
{
for(int i2=0;i2<abc.getlength(1);i++)
{
console.writeline(abc[i1,i2]);
}
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-23
你可以用 ABC.GETLENGTH(0)试哈! 它获取的是二维数组的维数!
第2个回答  2011-04-25
1. 多维数组int[,]
用abc.GetLength(0), abc.GetLength(1)访问
2. 锯齿数组int[][]
int[][] abc=new int[3][];
可以用abc[0]访问
相似回答