我是 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 来处理应该是动态查询的内容。