我依次有以下两个 for 循环。当我单独运行时,第一个 for 循环起作用,这很奇怪。但是当我单独运行第二个循环时,我得到了一个索引超出范围的异常错误。有人可以帮我检查错误是什么吗?非常感谢!
for (i = NiPricePointer; i < 551; i++)
{
tempUpper = tempUpper + NiPriceCounter[i];
if (tempUpper >= (NiPriceRounds * 0.3))
{
chart3.Series["Upper 30%"].Points.AddXY(k * 500, ((i - 1) * 0.1 + 5));
break;
}
}
for (i = NiPricePointer; i>0; i--) //This loop always gives me out of range problems.
{
tempLower = tempLower + NiPriceCounter[i];
if (tempLower >= (NiPriceRounds * 0.3))
{
chart3.Series["Lower 30%"].Points.AddXY(k * 500, ((i - 1) * 0.1 + 5));
break;
}
}
数组的初始化:
int[] NiPriceCounter = new int[551];
非常感谢!
最佳答案
我想,NiPricePointer 只是大于 550。您的两个循环都应包含两个边界作为检查:
for (i = NiPricePointer; i < 551 && i >=0; i++)
和
for (i = NiPricePointer; i < 551 && i >=0 ; i--)
关于c# - 索引越界问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5156558/