为什么我找不到类型'String'上的“公共成员'字段'。”将我的数据表行转换为VB.Net中的List(Of Object)时出现异常?

时间:2017-05-08 05:01:48

标签: vb.net linq

我有一个VB.Net应用程序,它试图使用Linq将DataTable中的行转换为通用的对象列表。

这是我的班级(对象)定义:

sed 's/\x1b\[.*\x1b\[//'

以下是我用来转换为List(T)的代码段:

Public Class Sample
    Public Property Field1 As String = ""
    Public Property Field2 As String = ""
End Class

代码编译正常,但我得到以下异常:

  

“找不到'String'类型的公共成员'Field2'。”

如果我只做1个字段,则该语句可以正常工作。 如果我颠倒“With”子句中字段的顺序,我会得到以下异常:

  

未找到“String”类型的公共成员“Field1”

我做错了什么? 我的Linq定义有问题吗?

由于

1 个答案:

答案 0 :(得分:0)

代码段缺少字段定义之间的逗号。

With {.Field1 = IIf(String.IsNullOrEmpty(dr.Field(Of String)(0)), "Missing Field1", dr.Field(Of String)(0)) _
                      .Field2 = IIf(String.IsNullOrEmpty(dr.Field(Of String)(1)), "Missing FIeld2", dr.Field(Of String)(1))}

应该是:

With {.Field1 = IIf(String.IsNullOrEmpty(dr.Field(Of String)(0)), "Missing Field1", dr.Field(Of String)(0)), _
                      .Field2 = IIf(String.IsNullOrEmpty(dr.Field(Of String)(1)), "Missing FIeld2", dr.Field(Of String)(1))}