数组遍历的一个小问题
使用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);