按照我的理解foreach和for都具有遍历的功能
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace _for
- {
- class Program
- {
- static void Main(string[] args)
- {
- Console.WriteLine("for");
- int [] i =new int[]{1,2,3,4,5,6,7,8};
- for (int j = 0; j < i.Length; j++) {
- Console.Write(i[j]+" ");
- }
- Console.WriteLine();
- Console.WriteLine("foreach");
- foreach(int j in i){
- Console.Write(j+" ");
- }
- Console.ReadLine();
- }
- }
- }
复制代码 foreach迭代的是集合中的每一项.当然C#数组也是集合.
但是,foreach (var temp in array) temp的值是只读属性的,也就是说它不能像for那样对遍历对象进行操作例如:- int [] a = new int[] { 1, 2,3,4,5,6 };
- foreach (int b in a)
- {
- b += 1; //error
- }
- for (int i = 0; i < a.Length; i++)
- {
- a[i] += 1;
- }
复制代码
foreach比for好在它的性能优势,效率比for高,并且它并不需要知道数组的长度,范围;
那么要访问数组下标的时候用for,要遍历对象数组时用foreach比较好
|