黑马程序员技术交流社区

标题: foreach语句讲解 [打印本页]

作者: Doublekill    时间: 2014-3-2 20:58
标题: foreach语句讲解
本帖最后由 Doublekill 于 2014-3-3 20:40 编辑

发现foreach语句老师提的很少,自己还是不太懂,求大伙帮忙举个简单的例子,详细点,谢谢!!
作者: 许庭洲    时间: 2014-3-2 21:36
本帖最后由 许庭洲 于 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);
        }
}

   


作者: Flyingbaby    时间: 2014-3-3 08:29
关于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");
            }
        }


作者: 不经夸。    时间: 2014-3-3 15:50
Flyingbaby 发表于 2014-3-3 08:29
关于foreach上面的大神讲解的很详细了,我提供个例子吧,这个是在winform应用程序中删除datagridview中的选 ...

额,怎么还在停留在控件的事件上呢??
作者: Doublekill    时间: 2014-3-3 20:43
许庭洲 发表于 2014-3-2 21:36
1. 语句的格式为:foreach(type identifier in expression) embedded-statement
2. 其中类型(type)和标识符 ...

谢谢。很清楚..
作者: 李恒权    时间: 2014-3-4 00:36
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
       }

作者: czwanglei    时间: 2014-3-6 19:43
我也在这里学到了很多东西、




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2