私は 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 の作成を開始したくありません。