Mega Code Archive

 
Categories / VB.Net / LINQ
 

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