黑马程序员技术交流社区
标题:
foreach的用法
[打印本页]
作者:
廖创发
时间:
2012-9-14 20:30
标题:
foreach的用法
本帖最后由 廖创发 于 2012-9-15 11:22 编辑
求foreach的用法,与for又有什么区别?与for的优缺点
作者:
杜峰
时间:
2012-9-14 20:35
for可以不逐个遍历,比如每隔一个遍历一个,也可以从前向后遍历,从后向前,但是foreach不能从后向前遍历,只能从前向后,并且foreach只能逐个遍历。在foreach中不能向迭代变量赋值。
说明:
foreach 对象是集合。
集合的定义下边有。
像数组、List等都是集合。具体的去MSDN上查询。上边讲的很全面。
下列示例按照元素的顺序打印出一个二维数组中的各个元素的值:
using System;
class Test
{
static void Main() {
double[,] values = {
{1.2, 2.3, 3.4, 4.5},
{5.6, 6.7, 7.8, 8.9}
};
foreach (double elementValue in values)
Console.Write("{0} ", elementValue);
Console.WriteLine();
}
}
和for循环的区别:
for循环油条件判断,可以限制执行条件。foreach没有。对集合对象的遍历,foreach更常用。
作者:
希望在明日
时间:
2012-9-14 23:27
怎么说呢,foreach好像就是for的一个子集,foreach就是用来遍历(从头到尾读取)一个集合类型(比如数组)里面元素
如:
int[] arr1=new int[5]{23,4,35,3,4,12};//定义一个数组
foreach(int i in arr1)
{
if(i>10)
console.writeLine(i); //遍历大于10的数并输出
}
//如果用for语句来实现
for(int i=0;i<arr1.Length;i++)
{
if(arr1[i]>10)
{
console.writeLine(arr1[i]);
}
}
其实吧,区别不大,用foreach实现的for都可以实现,只是稍微简洁了点,不管怎么样,最终达到结果就可以,过程并不重要,所以没必要在这个问题上有所疑虑......
作者:
iamheima
时间:
2012-9-14 23:33
foreach循环用来迭代集合中的每一项,其内部是通过调用IEnumerable接口的GetEnumerator()方法来实现的遍历。
注意,foreach循环不能改变集合中各项的值,所以下面的代码不会被编译:
foreach(int temp in arrayOfInt)
{
temp++;
Console.WriteLine(temp);
}
复制代码
如果需要迭代集合中的各项,并改变它们的值,就可以使用for循环,它提供了更为灵活的方式。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2