C#中foreach语句的作用?

个人认为for完全可以替代foreach,foreach除了循环输出数组还有木有其他用处???????????????????????????

我也认为foreach能实现的for都能实现,相反for能实现的foreach就未必能实现。早期的编程语言比如c,c++都没有foreach语句,它是在之后的发展出来的编程语言才出现的,比如C#、Java,说明了它既然存在必然有它存在的意义。时代在进步,思想也是,我觉得你不应该从for是不是能代替foreach这个角度看foreach语句,而是一个语句能解决什么问题的角度,我觉得本来foreach就相当于一种设计思想,针对集合这类数据进行遍历的情况,你用的时候,难道不觉得方便了许多,至于别的比如它们之间的区别,只是实现遍历条件上的差异而已。
foreach是针对集合类的遍历,比如泛型之类的也适用,不仅仅是针对数组
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-04

  C#中foreach在书写上比for简单得多,作用是遍历数组的全部元素,但是没有循环变量,需要控制循环次数或记录循环次数的地方不如for。

  具体使用参考代码如下:

using System;
public class jb51demo {
 public static void Main() {
  int sum = 0;
  int[] nums = new int[10];
  
  // give nums some values
  for(int i = 0; i < 10; i++) 
   nums[i] = i;
  
  // use foreach to display and sum the values
  foreach(int x in nums) {
   Console.WriteLine("Value is: " + x);
   sum += x;
  }
  Console.WriteLine("Summation: " + sum);
}

第2个回答  2012-03-30
foreach在书写上比for简单得多,用于遍历数组的全部元素。但是没有循环变量,需要控制循环次数或记录循环次数的地方不如for。这个是根据跟人需要选择的,尤其在多层包含的循环中,比如一个DataSet里好几个DataTable,每个DataTable里好几列,好几行,那用foreach就很方便了,不需要for那样的i,j,k那么麻烦的循环变量,也不容易写错,而且绝对不可能出现数组越界问题。
第3个回答  推荐于2018-03-22
int num[] = new int[]{2,3,4,5,6,7};
foreach(int item in num)
{
//一般的循环操作,这样的效率是比for要高得多,因为它是迭代循环
//PS:foreach适用场景:不能对集合num[]进行删除或者添加操作,否则会得不到期望的结果
}

for(int i=0;i<=num.Length;i++)
{
if(num[i]==5) //就删除集合num[]中的元素5
//这种对集合num[]进行的删除元素操作就是foreach不能代替的~~~
}本回答被网友采纳
第4个回答  2012-03-30
foreach就是遍历,和for的效果都一样,不存在楼主说的“完全替代”这样的说法,只是一个写法问题而已。
我个人感觉,其实foreach写起来比for轻松点。本回答被提问者采纳
相似回答