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