Protected Sub showrsresults(ByVal e As IEnumerable)
        Dim idx As IEnumerator = e.GetEnumerator
        While idx.MoveNext
            If idx.Current.GetType() Is GetType(DataRowView) Then
                Dim drv As DataRowView = DirectCast(idx.Current, DataRowView)
                Response.Output.Write("{0},{1},{2} </br>", drv(0), drv(1), drv(2))
            ElseIf idx.Current.GetType() Is GetType(DbDataRecord) Then
                Dim dr As DbDataRecord = DirectCast(idx.Current, DbDataRecord)
                Response.Output.Write("{0},{1},{2} </br>", dr(0), dr(1), dr(2))            End If
        End While
    End Sub这里主要是ByVal e As IEnumerable是什么意思
还有转换这一句idx.Current.GetType() Is GetType(DataRowView)
谢谢

解决方案 »

  1.   

    IEnumerable e
    idx.Current.GetType()==typeof(DataRowView)
      

  2.   

    VB中的Is用于比较引用是否相等
      

  3.   

    IEnumerable类型
    具体是做什么用的谢谢
      

  4.   

    IEnumerable 接口公开枚举数,该枚举数支持在集合上进行简单迭代。属于System.Collections 命名空间
      

  5.   

    IEnumerable 接口里面只有一个方法
    GetEnumerator,返回可循环访问集合的枚举数
      

  6.   

    GetEnumerator()返回IEnumerator类型,也是个接口,用于迭代集合
    有Current属性与MoveNext方法
     
      

  7.   

    很多集合类型都实现IEnumerable接口,比如数组、各种List等
    调用showrsresults时,参数传入实现IEnumerable接口的类的对象就可以了
      

  8.   

    protected void showrsresults(IEnumerable e)
        {
            IEnumerator idx = e.GetEnumerator();
            while (idx.MoveNext())
            {
                if (idx.Current.GetType() == typeof(DataRowView))
                {
                    DataRowView drv = DirectCast(idx.Current, DataRowView);
                    Response.Output.Write("{0},{1},{2}</br>",drv(0),drv(1),drv(2));
                }
                else if(idx.Current.GetType() == typeof(DbDataRecord))
                {
                    DbDataRecord dr = DirectCast(idx.Current,DbDataRecord);
                    Response.Output.Write("{0},{1},{2}</br>", dr(0), dr(1), dr(2));
                }
            }
        }
      

  9.   

    Response.Output.Write("{0},{1},{2}</br>",drv(0),drv(1),drv(2));
    改成
    Response.Output.Write("{0},{1},{2}</br>",drv([0],drv[1],drv[2]);