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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Doublekill 中级黑马   /  2014-3-2 20:58  /  2376 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Doublekill 于 2014-3-3 20:40 编辑

发现foreach语句老师提的很少,自己还是不太懂,求大伙帮忙举个简单的例子,详细点,谢谢!!

评分

参与人数 1技术分 +1 收起 理由
邓艳秋 + 1

查看全部评分

6 个回复

倒序浏览
本帖最后由 许庭洲 于 2014-3-2 21:43 编辑

1. 语句的格式为:foreach(type identifier in expression) embedded-statement
2. 其中类型(type)和标识符(identifier )用来声明循环变量,表达式(expression)对应集合;
3. 每执行一次内嵌语句,循环变量就依次取集合中的一个元素代如其中;
4. foreach语句中的expression必须是集合类型,如果该集合的元素与循环变量类型不一致,则必须有一个显示定义的从集合中的元素类型到循环变量元素类型的显示转换。
5. 举例子:
//   假设Prime是一个满足条件的集合类型,它的元素类型为0到1000以内的质数。
//   MyInt是自定义的一个类型,其范围为200到300之间的整数。
//   在屏幕上打印出从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技术分 +1 收起 理由
邓艳秋 + 1

查看全部评分

回复 使用道具 举报
关于foreach上面的大神讲解的很详细了,我提供个例子吧,这个是在winform应用程序中删除datagridview中的选中行,定义一个delete点击事件,
private void tsniDelete_Click(object sender, EventArgs e)
        {
            try
            {                    //遍历datagridview中的选中行
                    foreach (DataGridViewRow row in this.dgv.SelectedRows)
                    {
                        #region delete detai
                        string sql;
                        if (count == 0)
                        {
                            sql = "delete from 表名where ID_ = @id";
                            ArrayList sqlParams = new ArrayList();
                            sqlParams.Add(new ListItem("@id", v(row, "ID_", "0")));
                            FunctionLib.DBCommandExecNoneQueryBySql(sql, sqlParams);
                        }
                        #endregion                      }
            }
            catch (Exception ex)
            {
                FunctionLib.msg("删除选中行时,程序遇到未知错误,请重试!\r\n" + ex.Message, "e");
            }
        }

评分

参与人数 1技术分 +1 收起 理由
邓艳秋 + 1

查看全部评分

回复 使用道具 举报
Flyingbaby 发表于 2014-3-3 08:29
关于foreach上面的大神讲解的很详细了,我提供个例子吧,这个是在winform应用程序中删除datagridview中的选 ...

额,怎么还在停留在控件的事件上呢??
回复 使用道具 举报
许庭洲 发表于 2014-3-2 21:36
1. 语句的格式为:foreach(type identifier in expression) embedded-statement
2. 其中类型(type)和标识符 ...

谢谢。很清楚..
回复 使用道具 举报
1、 foreach语句用于循环访问集合、数组,以获取需要的信息,但不能用于在源集合中添加或移除项。如果需要在源集合中添加或移除项,可以使用for循环。
2、可以在foreach块的任何一点使用break关键字跳出循环,或使用continue关键字进入循环的下一轮迭代,也可以通过goto、return或throw语句退出。举个简单的例子
3、foreach语法:
     foreach(数据类型  自定变量名  in 数组名/集合名)
         {
          要执行的内容;
          }
执行:
      定义一个和in后面数组或集合成员类型一样的变量,用来接收数组或集合成员。然后通过循环来访问数组或集合的成员。

举个简单点的例子:
     int[] number=new int[]{1,2,3,4,5};         
    forreach(int i in number)
       {
        console.writeLine(i);//通过循环来访问1,2,3,4,5
       }
回复 使用道具 举报
我也在这里学到了很多东西、
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马