回 帖 发 新 帖 刷新版面

主题:GetUpperBound问题!?

代码如下:
using System;

namespace Example_TraverseArray
{
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    class MainTest
    {
        /// <summary>
        /// 使用GetLowerBound|GetUpperBound遍历数组
        /// </summary>
        public void test1()
        {
            //定义二维数组
            string[,] myStrArr2=new string[,]{{"油","盐"},{"《围城》","《晨露》"},{"毛毛熊","Snoopy"}};
            //循环输出
            for(int i=myStrArr2.GetLowerBound(0);i<=myStrArr2.GetUpperBound(0);i++)
            {
                Console.WriteLine("item{0}",i);
                for(int j=myStrArr2.GetLowerBound(1);j<=myStrArr2.GetUpperBound(1);j++)
                {
                    Console.WriteLine("    item{0}{1}:{2}",i,j,myStrArr2.GetValue(i,j));
                }
            }
        }

        /// <summary>
        /// 使用foreach遍历数组
        /// </summary>
        public void test2()
        {
            //定义二维数组
            string[,] myStrArr2=new string[,]{{"油","盐"},{"《围城》","《晨露》"},{"毛毛熊","Snoopy"}};
            //循环输出
            foreach(string item in myStrArr2)
            {
                {
                    Console.WriteLine("{0}",item);
                }
            }
        }

        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            MainTest t=new MainTest();
            t.test1();
            t.test2();
        }
    }
}
其中for(int j=myStrArr2.GetLowerBound(1);j<=myStrArr2.GetUpperBound(1);j++)
这一句我有点不明白,GetLowerBound和GetUpperBound分别是获得数组指定维数的上下限,那么这句是不是就可以理解为获得myStrArr2第1维的上限和下限?分别是0,2,而第0维的上下限也都是0和2啊。但我把它改成for(int j=myStrArr2.GetLowerBound(0);j<=myStrArr2.GetUpperBound(0);j++)后提示出错。请问为什么?

回复列表 (共1个回复)

沙发

0维:0-2
1维:0-1
这是一个[3,2]数组

我来回复

您尚未登录,请登录后再回复。点此登录或注册