日期:2014-05-18  浏览次数:20977 次

问下 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时,越界