Using AndAlso in Where clause
Imports System.IO
Imports System.Reflection
Imports System.Linq
Imports System.Xml.Linq
Imports System.Collections
Imports System.Collections.Generic
Public Class Project
Public ProjectID As Integer
Public ProjectName As String
Public Category As String
Public Cost As Decimal
Public YearLength As Integer
End Class
Public Class Employee
Public EmployeeID As String
Public CompanyName As String
Public Address As String
Public City As String
Public Region As String
Public PostalCode As String
Public Country As String
Public Phone As String
Public Fax As String
Public Payments As Payment()
End Class
Public Class Payment
Public PaymentID As Integer
Public PaymentDate As DateTime
Public Total As Decimal
End Class
Public Class MainClass
Public Shared Sub Main()
Dim projectList As List(Of Project) = New List(Of Project)
projectList.Add(New Project With {.ProjectID = 1, .ProjectName = "A", .Category = "Design", .Cost = 18D, .YearLength = 39})
projectList.Add(New Project With {.ProjectID = 2, .ProjectName = "B", .Category = "Testing", .Cost = 19D, .YearLength = 17})
projectList.Add(New Project With {.ProjectID = 3, .ProjectName = "C", .Category = "Coding", .Cost = 10D, .YearLength = 13})
projectList.Add(New Project With {.ProjectID = 4, .ProjectName = "D", .Category = "Meeting", .Cost = 22D, .YearLength = 53})
projectList.Add(New Project With {.ProjectID = 5, .ProjectName = "E", .Category = "Writing", .Cost = 21.35D, .YearLength = 0})
projectList.Add(New Project With {.ProjectID = 6, .ProjectName = "F", .Category = "Testing", .Cost = 25D, .YearLength = 120})
projectList.Add(New Project With {.ProjectID = 7, .ProjectName = "G", .Category = "Coding", .Cost = 30D, .YearLength = 15})
projectList.Add(New Project With {.ProjectID = 8, .ProjectName = "H", .Category = "Design", .Cost = 40D, .YearLength = 6})
projectList.Add(New Project With {.ProjectID = 9, .ProjectName = "I", .Category = "Coding", .Cost = 97D, .YearLength = 29})
Dim employeeList As List(Of Employee) = New List(Of Employee)
employeeList.Add(New Employee With {.EmployeeID = 1, .CompanyName = "Company A", .Address = "Street 1", .City = "City 1", .Region = "North"})
employeeList.Add(New Employee With {.EmployeeID = 2, .CompanyName = "Company B", .Address = "Street 2", .City = "City 2", .Region = "South"})
employeeList.Add(New Employee With {.EmployeeID = 3, .CompanyName = "Company C", .Address = "Street 3", .City = "City 3", .Region = "West"})
employeeList.Add(New Employee With {.EmployeeID = 4, .CompanyName = "Company D", .Address = "Street 4", .City = "City 4", .Region = "East"})
employeeList.Add(New Employee With {.EmployeeID = 5, .CompanyName = "Company E", .Address = "Street 5", .City = "City 5", .Region = "North"})
employeeList.Add(New Employee With {.EmployeeID = 6, .CompanyName = "Company F", .Address = "Street 6", .City = "City 6", .Region = "South"})
Dim cutoffDate = #1/1/1997#
Dim orders = From cust In employeeList, ord In cust.Payments _
Where cust.Region = "WA" AndAlso ord.PaymentDate >= cutoffDate _
Select cust.EmployeeID, ord.PaymentID
For Each order In orders
Console.WriteLine(order.EmployeeID)
Next
End Sub
End Class
Related examples in the same category