看个例子,就可以看出原因
public
static
void
Main(
string
[] args) { Console.WriteLine(
"
进入For循环
"
);
for
(
int
i
=
0
;i
<
List().Count;i
++
){ Console.WriteLine(i.ToString()); } Console.WriteLine(
"
进入Foreach循环
"
);
foreach
(
int
i
in
List()){ Console.WriteLine(i.ToString()); } Console.WriteLine(
"
结束
"
); Console.ReadKey(
true
); }
static
List
<
int
>
List(){ List
<
int
>
l
=
new
List
<
int
>
(); l.Add(
1
); l.Add(
2
); Console.WriteLine(
"
添加一次函数
"
);
return
l; }
执行结果如下
进入For循环
添加一次函数
0
添加一次函数
1
添加一次函数
进入Foreach循环
添加一次函数
1
2
结束
要熄灯了,虽然程序小有问题,但基本能看出for一共执行了三次函数list而foreach只执行了必要的一次,由此可见,foreach效率比for要高上许多