IndexOutOfRange异常C#多维数组

时间:2015-04-11 05:40:51

标签: c# asp.net-mvc

string[,] Months = new string[12,2] { { "Jan", "1" }, { "Feb", "2" }, { "Mar", "3" }, { "Apr", "4" }, { "May", "5" }, { "Jun", "6" }, { "Jul", "7" }, { "Aug", "8" }, { "Sep", "9" }, { "Oct", "10" }, { "Nov", "11" }, { "Dec", "12" } };

for (int i = 0; i < Months.Length; i++)
{
    if (Convert.ToInt32(Months[i,1]) > DateTime.Now.Month)
    {
        //Do Something
    }
    else
    {
        //Another Task
    }
}

上面的代码抛出“范围异常”之外的索引。但是,当我在for循环中手动插入数组的长度时,一切正常

for (int i = 0; i < 12; i++)
{
    if (Convert.ToInt32(Months[i,1]) > DateTime.Now.Month)
    {
        //Do Something
    }
    else
    {
        //Another Task
    }
}

导致此例外的原因是什么?我一直在使用类似的代码很长一段时间没有问题。刚刚今天早上写了这个,面对红屏。

2 个答案:

答案 0 :(得分:3)

for (int i = Months.GetLowerBound(0); i <= Months.GetUpperBound(0); i++)

答案 1 :(得分:2)

for (int i = 0; i < Months.GetLength(0); i++)

长度是指数组中所有元素的大小,即24。要获得一个维度的大小,请使用GetLength()