标题: 关于c#中的循环 [打印本页] 作者: 熊鑫 时间: 2013-4-18 10:37 标题: 关于c#中的循环 c#中循环有4种
do while/while/for还有一个叫foreach
前面两个的区别我知道
for和foreach,的区别是什么。 作者: wlt 时间: 2013-4-18 10:57
for和foreach有本质的区别
foreach的具体过程是由目标对象控制的
所以并非集合内容更改了就不可以使用foreach
而是Array和Collection对象如此实现了它而已
你却可以完全按照自己的想法去实现这一过程
也许你可以去翻一下Gof的Visitor模式,foreach看起来就是它的简化版本
我们应该把foreach当作一种设计模式而不是简单的一个循环语句去理解
目前C#里的foreach是以IEnumerable的方式去实现,这只是保留COM的实现方式,这种方式我认为其实不太便于理解
我想如果存在一个IForEachable其成员为ForEach(..),这样可能更能让人容易明白作者: mdl 时间: 2013-4-18 11:08
do while,while,for这三种循环差不多,都是在已知循环次数时进行的循环,foreach循环一般用来遍历数组,也就是对数组中的每一项进行访问,当然前面三种循环也可以遍历数组,但写起来比起foreach更麻烦。
下面分别是用for和foreach循环遍历数组的例子:
public class program
{
public static void Main()
{
int m=0;
int[] a=new int[5]{1,2,3,4,5};
for(int i=0;i<5;i++)
{
m=int[i];
}
Console.WriteLine(m);
}
}
public class program
{
public static void Main()
{
int m=0;
int[] a=new int[5]{1,2,3,4,5};
foreach(int i in a)//这里用到了in关键字
{
m=i;
}
Console.WriteLine(m);
}
}