C#for循环计数数组不工作

时间:2014-03-20 11:28:27

标签: c# arrays for-loop multidimensional-array console.writeline

我正在尝试创建一个C#for循环,它将遍历项目数组并打印用户的第一个日期。下面是数组的代码(我认为是正确的)。

string[,] arrHolidays = new string[2, 3];
arrHolidays[0, 0] = "10/05/2015";
arrHolidays[0, 1] = "15/05/2015";
arrHolidays[0, 2] = "Danny";
arrHolidays[1, 0] = "20/05/2015";
arrHolidays[1, 1] = "22/05/2015";
arrHolidays[1, 2] = "Kieran";

下面是For循环的代码(抛出错误)

for(int i = 0; i < arrHolidays.Length; i++)
{
    Console.WriteLine(arrHolidays[i, 0]);            
}

索引超出范围异常未得到处理。这是我收到的错误。当它抛出错误并且我检查值1时它是2,如果这是解决它的任何帮助。 我希望在控制台应用程序中看到的是: 10/05/2015 20/05/2015

INB4我几乎没有任何c#经验这是我的第一个项目,所以请解释任何帮助:)

2 个答案:

答案 0 :(得分:14)

您必须使用GetLength方法,而不是Length属性。

多维数组的Length属性返回数组中所有项的总数。 GetLength方法返回给定维度的大小数量(其中维度指定为从零开始的索引)。

因此,arrHolidays.Length将返回6.

for循环更改为:

  for (int i = 0; i < arrHolidays.GetLength(0); i++)
  {
        Console.WriteLine(arrHolidays[i, 0]);
  }

答案 1 :(得分:2)

Array.GetLength(int dimension)

在您的情况下,您希望获得第一个维度的长度,因此arrHolidays.GetLength(0)