问下 foreach 这么使用为什么会错?
class ForEachTest
{
static void Main(string[] args)
{
int[] fibarray = new int[] { 0, 1, 2, 3, 5, 8, 13 };
foreach (int i in fibarray)
{
//System.Console.WriteLine(fibarray[i]); //为什么有这句会越界?
System.Console.WriteLine(i);
}
}
}
------解决方案--------------------因为
i 的值大于数组的维数
------解决方案--------------------LZ没明白foreach的意思哦.
class ForEachTest
{
static void Main(string[] args)
{
int[] fibarray = new int[] { 0, 1, 2, 3, 5, 8, 13 };
foreach (int i in fibarray)//foreach的时候,i就是等于0, 1, 2, 3, 5, 8, 13
{
//System.Console.WriteLine(fibarray[i]); 这样写的话,当i=8或13的时候
//fibarray[i]就相当于fibarray[8]或fibarray[13].fibarray数组长度才///7,怎么会有8和13呢,当然出错了.
System.Console.WriteLine(i);
}
}
}
------解决方案--------------------楼主搞清楚foreach是啥意思再用吧
用回for先吧
------解决方案--------------------fibarray[i]); 当each i 走到8或13时,越界