【发布时间】:2010-07-07 20:47:55
【问题描述】:
我是 Linq to Objects 的新手,刚刚遇到匿名类型和范围的问题。
例如,这很好用:
Public Sub CreateResults()
results = From e In CustomerList
Join f In OrderList On CustomerList.ID Equals OrderList.ID
Select New With {e.FirstName, e.LastName, f.OrderID}
For Each r in results
Console.Writeline(r.FirstName, r.LastName, r.OrderID)
Next t
End Sub
但这不是:
Public Class Foo
Private _linqResults
Public Sub CreateResults()
_linqResults = From e In CustomerList
Join f In OrderList On CustomerList.ID Equals OrderList.ID
Select New With {e.FirstName, e.LastName, f.OrderID}
End Sub
Public Sub PrintResults()
For Each r in _linqResults
Console.Writeline(r.FirstName, r.LastName, r.OrderID)
Next t
End Sub
End Class
我一直在寻找 SO 和其他地方,试图找到一个简单的解决方案,但运气不佳。是否有任何方法可以访问包含 Linq 查询的方法范围之外的匿名类型的字段?比如:
Console.Writeline(r("FirstName").ToString, r("LastName").ToString)
可以接受,但并不理想。
我真的、真的不想开始创建额外的类/结构/DTO 来处理应该是动态查询的内容。
【问题讨论】:
标签: linq-to-objects anonymous-types vb.net-2010