键入将匿名类型转换为IEnumerable类型

时间:2017-06-09 15:32:09

标签: vb.net

代码:

Dim query As IEnumerable(Of DataRow) = From row In datatable.AsEnumerable() _
                        Select New With {
                       .messageId = row.Field(Of Integer)("Message_Id"), _
                       .severity = row.Field(Of String)("Severity")}

Dim dt As DataTable = query.CopyToDataTable 

我从DataTable获取了一些列并复制到新的DataTable。但它给了我以下错误:

  

System.Data.EnumerableRowcollection(匿名类型)不能   转换了System.collections.Generic.IEnumerable(of   的System.Data.DataRow)。

我该如何处理?

1 个答案:

答案 0 :(得分:0)

您在此处创建新类型:

Select New With {
.messageId = row.Field(Of Integer)("Message_Id"),
.severity = row.Field(Of String)("Severity")
}

尝试将这种新类型转换为DataRow。这就是你收到错误的原因。

您可以使用以下代码过滤数据:

 Dim query = From row As DataRow In dtTable.Rows
                        Where row("colunm_name").ToString = "condition"
                        Select row

这将为您提供IEnumerable(Of DataRow)