首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

数组遍历的一个小疑点

2012-01-22 
数组遍历的一个小问题使用foreach语句遍历数组时怎么会提示下标越界呢不懂望高手指点下usingSystemusingS

数组遍历的一个小问题
使用foreach语句遍历数组时     怎么会提示下标越界呢     不懂     望高手指点

下  

using   System;
using   System.Collections.Generic;
public   class   MyClass{
              public   static   void   Main()
{int[]   arr1=new   int[4]{1,2,3,5};
int   total=0;
try{
    foreach(int   num   in   arr1){  
    Console.WriteLine(arr1[num]);    
}
}
catch(IndexOutOfRangeException   e1){
Console.WriteLine( "IndexOutOfExcepetion ");
for(int   num=0;num <=arr1.Length-1;num++){  
    total+=arr1[num];    
}
}

Console.WriteLine(total);

Console.ReadLine();
}

}

[解决办法]
num得到的数组中的值,不是指数

foreach(int num in arr1)
{
total+=num;
Console.WriteLine(num);
}
[解决办法]
foreach(int num in arr1)
{
Console.WriteLine(arr1[num]);
^^^^^^^^^^^^^
}
这里的num依次为1,2,3,5,当执行到5的时候,组数就越界了...
foreach中,得到的是值,而不是索引..
[解决办法]
改成
try
{
foreach (int num in arr1)
{
Console.WriteLine(num);
}
}
[解决办法]
Console.WriteLine(arr1[num]); 这里错了
改成

Console.WriteLine(num.ToString);

热点排行