Three useful Linq concepts operating on sets. Given set c
and set e
:
Concat gives you everything in c
or e
:
(From c In db.Customers Select c.Phone).Concat( _
From c In db.Customers Select c.Fax).Concat( _
From e In db.Employees Select e.HomePhone)
(From c In db.Customers _
Select Name = c.CompanyName, Phone = c.Phone).Concat(From e In db.Employees _
Select Name = e.FirstName & " " & e.LastName, Phone = e.HomePhone)
Union also gives you everything in c
and e
, but removes any duplicates:
(From c In db.Customers _
Select c.Country).Union(From e In db.Employees _
Select e.Country)
Except gives you everything in c
that is not in e
:
(From c In db.Customers _
Select c.Country).Except(From e In db.Employees Select e.Country)