A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 甘斌斌 中级黑马   /  2013-6-14 14:19  /  2588 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

学了2个多月C#了,对这个还是很模糊的,里面的参数代表什么?

怎么个用法?
什么时候用foreach,最好举个简单的例子,谢了。

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

8 个回复

倒序浏览
foreach主要是完全遍历一个数组或者集合,而for可以控制遍历哪些不遍历哪些
for(int i =0;i<n;i=i+2)这种情况就是隔一个输出一个,当然还可以在for的代码块中再用if进行判断
foreach也可以在代码块内进行判断
但是它的前提是输出了每个单元,再对每个单元进行判断
foreach(TreeNode tn in TreeNodes)可以遍历每个节点然后再选择有用没用的

你要理解遍历是什么意思,像如果是要输出树的所有节点或者输出集合所有的元素,那这个时候就用foreach(输出了所有的)
如果需要根据相关算法调用集合部分的元素,那么应该使用for循环(可以选择输出)

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 许庭洲 于 2013-6-14 14:34 编辑

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////在屏幕上打印出从200到300以内的所有质数////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
using System;
using System.Collections;
calss Test()
{
    public static void Main()
    {
          Console.WriteLine("See the PRIME NUMBER:")         
          foreach(MyInt x in Prime)
                  Console.WriteLine("{0}",x);
    }
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1. 数组类型是支持foreach语句的,对于一维数组,执行顺序是从小标为0的元素开始,一直到数组的最后一个元素;
2. 对于多维数组,元素小标的递增是从最右边那一维开始的,依此类推;
3. 同样,break和continue可以出现在foreach语句中,功能不变.
     
回复 使用道具 举报
foreach循环用于列举出集合中所有的元素,foreach语句中的表达式由关键字in隔开的两个项组成。in右边的项是集合名,in左边的项是变量名,用来存放该集合中的每个元素。 该循环的运行过程如下:每一次循环时,从集合中取出一个新的元素值。放到只读变量中去,如果括号中的整个表达式返回值为true,foreach块中的语句就能够执行。一旦集合中的元素都已经被访问到,整个表达式的值为false,控制流程就转入到foreach块后面 的执行语句。





      int[] nArray = new int[100];   
              foreach( int i in nArray )

{
            Debug.WriteLine( i.ToString() );

}

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
foreach常用于遍历循环列举出集合中所有的元素,优点是很便捷,foreach只是for一个封装而已,内部调用的for ,但是有很多场合用for反而更方便,要适当使用才会使程序简洁

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
foreach( item a in  item)
{
   //写循环过程中要做的事
}

items  表示实现了可迭代接口的 一张表    看成DataTable
item   表示实现了可迭代接口的 表的一行 看成DataRow

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
foreach(实例 in 实例的集合)
{     
      处理每个实例的操作;

用foreach无需了解循环体究竟要执行多少次,大多数情况下可以跟for互换使用
for(整形变量作循环的计数器,通过限定条件和对计数器变量的修改空值循环次数)

    每次循环执行一次指定操作
}      foreach的运行开销要小

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
举两个例子吧
(1)在简单的数组中
int[] arr = new int[] { 1,2,3,4,5,6,7,8,9};
foreach (int i in arr )
{
       System.Console.WriteLine(i);
}
(2)在DataSet中的应用

foreach (DataRow dr in ds.Tables[0].Rows)
{
      dr["列名"].ToString()......即可处理
}
回复 使用道具 举报
int[] nArray=new int[100]; foreach(int i in nArray) {   Console.WriteLine(i.ToString()); } for(int i=0;i<nArray.Length;i++) {   Console.WriteLine(nArray[i].ToString()); }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马