Click here to Skip to main content
15,880,970 members
Articles / Programming Languages / Visual Basic
Tip/Trick

How to dynamically retrieve results from a LINQ Query

Rate me:
Please Sign up or sign in to vote.
5.00/5 (3 votes)
3 Dec 2010CPOL 14.1K   5   1
Iterate through the results and extract using system.reflection
I looked for days for an answer and couldn't find one. Here's my solution on how to dynamically retrieve the results from a LINQ Query.

If you're stuck, I hope this helps.

-james

VB
'The following code will dynamically extract the
'field name and value from a LINQ IQueryable result.
'
'You need to:
'     Add Imports System.Reflection to your class
'     Create a LinqQuery and data context (if you're
'     looking at this code, I'm sure you know how.)
'
'Iterate through the result rows
For Each CurrentRow In LinqQuery

  'For each field in a row get property information
  'from the class
  For Each FieldPropertyInfo In CurrentRow.GetType.GetProperties

    'Retreive method you would call in code to get the
    'value of the field
    Dim GetMeth As System.Reflection.MethodInfo =
                   FieldPropertyInfo.GetGetMethod()

    'Invoke the method on the CurrentRow and retretrieve
    'the value
    Dim value As Object = GetMeth.Invoke(CurrentRow, Nothing)

    'Take a peek at the results
    Debug.Print(FieldPropertyInfo.Name & ": " & value.ToString)

  Next

Next

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Founder
United States United States
I have a BS in Computer Science. Interests include PHP, Swift, GOLang, and any flavor of SQL.

Comments and Discussions

 
GeneralGreat job James. I had the same problem. Here's a C# vers... Pin
carterlist22-Dec-10 0:44
carterlist22-Dec-10 0:44 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.