Linq-vb.net基于变量选择列
我们从表返回一组数据,需要根据变量选择一列 代码是Linq-vb.net基于变量选择列,linq,vb.net,Linq,Vb.net,我们从表返回一组数据,需要根据变量选择一列 代码是 Dim columnNo as Integer = 1 Dim rs as IEnumerable(Of Object) = db.ImportTable For each rsRow in rs Dim columnF1 = rsRow.f1 'where the field name is f1 (this works fine) Dim columnVariable = rsRow."f" & columnNo 'This
Dim columnNo as Integer = 1
Dim rs as IEnumerable(Of Object) = db.ImportTable
For each rsRow in rs
Dim columnF1 = rsRow.f1 'where the field name is f1 (this works fine)
Dim columnVariable = rsRow."f" & columnNo 'This line fails
感谢您的期待对于一个小的性能点击,您可以使用:
这将按名称动态查找属性,然后在给定变量上反映该属性的值。请注意,如果属性名称无效,这将在运行时引发异常。对于较小的性能影响,您可以使用:
这将按名称动态查找属性,然后在给定变量上反映该属性的值。请注意,如果属性名称无效,这将在运行时引发异常。您所说的“此行失败”是什么意思?如果出现错误,请粘贴正确的错误getting@sinelaw当前位置在这种情况下,我认为这是很明显的。您不能以这种方式引用属性名称。@mellamokb true,但这不是问问题的方式“此行失败”是什么意思?如果出现错误,请粘贴正确的错误getting@sinelaw当前位置在这种情况下,我认为这是很明显的。您不能以这种方式引用属性名称。@mellamokb true,但这不是提问的方式。如果
rsRow
没有属性(“f”&columnno)
=>的计算结果为f3(示例),那么对象引用错误将在该点发生。对吗?@rajarabhuaravindasamy:Correct,因为GetProperty
的结果将是Null
。如果rsRow
没有属性(“f”和columnno)
=>的计算结果为f3(示例),那么对象引用错误将出现在该点上。@rajaprabhuarvindasamy:正确,因为GetProperty
的结果将是Null
。
rsRow.GetType().GetProperty("f" & columnNo).GetValue(rsRow)