LINQ példák – Összefűzés

MEGOSZTÁS

Ha tetszett a cikk, akkor nyugodtan oszd meg ismerőseiddel, valószínű ők is örülni fognak neki.

A következő megoldások az eredményhalmazok összefűzésére szolgálnak.

Kezdjük egy nagyon egyszerű példával

Public Sub Main()
  Dim q = (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)
  Console.Write(q)
End Sub

Ez a példa visszaadja az ügyfelek és az alkalmazottak nevét és telefonszámát egy sorozatban

Public Sub Main()
  Dim q = (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)
  Console.Write(q)
  End Sub

A következő példa egyesíti a két lekérdezés eredményét

Public Sub Main()
  Dim q = (From c In db.Customers _
           Select c.Country).Union(From e In db.Employees _
           Select e.Country)
  Console.Write(q)
End Sub

Ez a példa visszaadja azokat a rekordokat, ahol a Customers és Employees táblák Country mező értéke egyforma.
Ilyen formán a két eredményhalmaz metszetét adja

Public Sub Main()
  Dim q = (From c In db.Customers _
           Select c.Country).Intersect(From e In db.Employees _
           Select e.Country)
  Console.Write(q)
End Sub

És itt az előző példa ellen párja. A példa visszadja azokat az országokat, ahol ügyfelek élnek, de dolgozók nem.

Public Sub Main()
  Dim q = (From c In db.Customers _
           Select c.Country).Except(From e In db.Employees Select e.Country)
  Console.Write(q)
End Sub

MEGOSZTÁS

Ha tetszett a cikk, akkor nyugodtan oszd meg ismerőseiddel, valószínű ők is örülni fognak neki.

HOZZÁSZÓLÁS

Ha nem hagy nyugodni az, amit a cikkben olvastál, akkor nyugodtan írd meg kérdésed vagy észrevételed kommentbe. Így szerzőnk könnyen tud neked válaszolni.

Vélemény, hozzászólás?