ANONYMOUS TYPES
An anonymous type is an object data type that is built automatically by Visual Basic and never given a name for the program to use. The type is used implicitly by the code that needs it and is then discarded.
The following code uses LINQ to select data from an array of BookInfo objects named BookInfos. It begins by using a LINQ query to fill variable book_query with the selected books. It iterates through the results stored in book_query, adding information about the selected books to a string, and displays the result in a text box.
Dim book_query =
From book As BookInfo In BookInfos
Where book.Year > 1999
Select book.Title, book.Pages, book.Year
Order By Year
Dim txt As String = ""
For Each book_data In book_query
txt &= book_data.Title & " (" & book_data.Year & ", " &
book_data.Pages & " pages)" & vbCrLf
Next book_data
txtResult.Text = txt
The book_query variable is an ordered sequence containing objects that hold the data selected by the query: Title, Pages, and Year. This type of object doesn’t have an explicit definition; it is an anonymous type created by Visual Basic to hold the selected values Title, Pages, and Year. If you hover the mouse over the book_query variable in the code editor, a tooltip appears giving the variable’s data type as:
System.Linq.IOrderedEnumerable(Of <anonymous type>)
Later, the code uses a For Each loop to enumerate the objects in book_query. The looping variable book_data must have the same type as the items in the sequence. The ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access