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
}
}
导致此例外的原因是什么?我一直在使用类似的代码很长一段时间没有问题。刚刚今天早上写了这个,面对红屏。
答案 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()