对集合使用 foreach是这样定义的
foreach (ItemType item in myCollection)我对DataGrid这样使用
foreach(DataGridItem dvitem in dvdatagrid.Items)我的理解是:datagrid,datalist,repeater等容器控件都可以使用,还有哪些控件可以这样使用?foreach经常用到的场合是哪里,除了数组,我说到的这几个?控件,还有哪些?大侠们来讨论一下啊

解决方案 »

  1.   

    foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。此语句的形式如下:foreach (type identifier in expression) statement
    其中: type 
    identifier 的类型。 
    identifier 
    表示集合元素的迭代变量。如果迭代变量为值类型,则无法修改的只读变量也是有效的。 
    expression 
    对象集合或数组表达式。集合元素的类型必须可以转换为 identifier 类型。请不要使用计算为 null 的表达式。 
    而应计算为实现 IEnumerable 的类型或声明 GetEnumerator 方法的类型。在后一种情况中,GetEnumerator 应该要么返回实现 IEnumerator 的类型,要么声明 IEnumerator 中定义的所有方法。 statement 
    要执行的嵌入语句。
      

  2.   

    COpyFRee(NULL):
    声明了索引器的集合有哪些?
      

  3.   

    直接或间接实现了可枚举接口(IEnumerable)的都可以!!
      

  4.   

    直接或间接实现了可枚举接口IEnumerable的都可以!
      

  5.   

    http://www.qq166.com/vip.htm?qq=525555foreach (DataColumn myCol in ds1.Tables["ruku1"].Columns)
      

  6.   

    除非不得不使用foreach,否则都使用for循环。后者效率高!!!
      

  7.   

    还有一些小技巧,如一个ArrayList arr=new ArrayList()
    然后向arr中添加窗口,如arr.Add(form1);arr.Add(form2);
    可以用
    foreach(Form frm in arr)
    {
      frm.Text="asdf";
    }
    也就是说foreach可以在任何集合中遍历,而不管元素具体是什么
      

  8.   

    foreach (DataRow r in DateSet)
    {
       r["Field"].ToString()=="XX"
    }
      

  9.   

    实现 IEnumerable 的类型或声明 GetEnumerator 方法的类型