XML LINQ VB.Net

Imports System.Reflection
Imports System
Public Class Role
    Public ID As Integer
    Public RoleDescription As String
End Class
Public Class Person
    Public ID As Integer
    Public IDRole As Integer
    Public LastName As String
    Public FirstName As String
End Class
Public Class Salary
    Public IDPerson As Integer
    Public Year As Integer
    Public SalaryYear As Double
End Class
Module Module1
    Sub Main()
        Dim people As New List(Of Person)(New Person() { _
            New Person With {.ID = 1, .IDRole = 1, .LastName = "A", .FirstName = "Brad"}, _
            New Person With {.ID = 2, .IDRole = 2, .LastName = "G", .FirstName = "Tom"} _
        })
        Dim roles As New List(Of Role)(New Role() { _
            New Role With {.ID = 1, .RoleDescription = "Manager"}, _
            New Role With {.ID = 2, .RoleDescription = "Developer"} _
        })
        Dim salaries As New List(Of Salary)(New Salary() { _
                New Salary With {.IDPerson = 1, .Year = 2004, .SalaryYear = 10000.0}, _
                New Salary With {.IDPerson = 1, .Year = 2005, .SalaryYear = 15000.0}, _
                New Salary With {.IDPerson = 2, .Year = 2005, .SalaryYear = 15000.0} _
        })
        FirstLastOrDefaultExample()
    End Sub
    Function firstFunc(ByVal n As Integer) As Boolean
        Return (n Mod 2 = 0)
    End Function
    Function lastFunc(ByVal n As Integer) As Boolean
        Return (n Mod 2 = 1)
    End Function
    Public Sub FirstLastOrDefaultExample()
        Dim numbers As Integer() = New Integer() {1, 3, 5, 7, 9}
        Dim firstDelegate As New Func(Of Integer, Boolean)(AddressOf firstFunc)
        Dim lastDelegate As New Func(Of Integer, Boolean)(AddressOf lastFunc)
        Dim query = numbers.FirstOrDefault(firstDelegate)
        Console.WriteLine("The first even element in the sequence")
        Console.WriteLine("The last odd element in the sequence")
        query = numbers.LastOrDefault(lastDelegate)
    End Sub
End Module