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} _
})
FirstLastExample()
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 = 0)
End Function
Public Sub FirstLastExample()
Dim numbers As Integer() = New Integer() {1, 2, 3, 4, 5, 6, 7, 8, 9}
Dim firstDelegate As New Func(Of Integer, Boolean)(AddressOf firstFunc)
Dim lastDelegate As New Func(Of Integer, Boolean)(AddressOf lastFunc)
Dim query = numbers.First()
Console.WriteLine("The first element in the sequence")
query = numbers.Last()
Console.WriteLine("The last element in the sequence")
Console.WriteLine("The first even element in the sequence")
query = numbers.First(firstDelegate)
Console.WriteLine("The last even element in the sequence")
query = numbers.Last(lastDelegate)
End Sub
End Module