我想使用GetLength()
获得数组第二维的长度。
我使用GetLength(0)
作为第一维度,而使用GetLength(1)
作为第二维度。
但是,这对我不起作用,并抛出:System.IndexOutOfRangeException: 'Index was outside the bounds of the array.'
,当尝试访问第二维时(使用第二个for loop
)。
下面是我正在使用的代码段。
List<string> barDates = new List<string>();
List<string> barValues = new List<string>();
for (int i = 0; i < data.GetLength(0); i++)
{
MessageBox.Show(data[i][0] + " " + data[i][1]);
for (int x = 2; x < data.GetLength(1) - 2; x++)
{
int value = 0;
value = value + Int32.Parse(data[i][x]);
barValues.Add(value.ToString());
}
barDates.Add(data[i][1]);
}
barValues.ToArray();
barDates.ToArray();
这里是变量data
,其值是:https://i.imgur.com/vqjeSgr.png
主要目的是读取包含14列的.csv
文件,第一个是公司名称,第二个是年份,第二个for loop
内不需要。
请忽略MessageBox.Show(data[i][0] + " " + data[i][1]);
,因为我只是想看看是否正在处理正确的值。
行数不断变化,因此需要动态。
第2维的所有数字将加在一起,然后添加到每一行的数组中。
然后将在条形图中使用该数组。
答案 0 :(得分:4)
data[i][1]
这是一个锯齿状的数组。 data.GetLength(1)
不起作用,因为数据没有第二维。改用它:
data[i].Length