Concatenazione in LINQ
Esegue la concatenazione di due sequenze ed è abbastanza simile all'operatore dell'Unione in termini di funzionamento, tranne per il fatto che questo non rimuove i duplicati.
Operatore | Descrizione | Sintassi delle espressioni di query C # | Sintassi delle espressioni di query VB |
---|---|---|---|
Concat | Due sequenze vengono concatenate per la formazione di un'unica sequenza. | Non applicabile | Non applicabile |
Esempio di Concat - Metodo Enumerable.Concat (Of TSource)
C #
using System;
using System.Collections.Generic;
using System.Linq;
namespace Operators {
class Concat {
static void Main(string[] args) {
Pet[] cats = GetCats();
Pet[] dogs = GetDogs();
IEnumerable<string> query = cats.Select(cat ⇒ cat.Name).Concat(dogs.Select(dog => dog.Name));
foreach (var e in query) {
Console.WriteLine("Name = {0} ", e);
}
Console.WriteLine("\nPress any key to continue.");
Console.ReadKey();
}
static Pet[] GetCats() {
Pet[] cats = { new Pet { Name = "Barley", Age = 8 },
new Pet { Name = "Boots", Age = 4 },
new Pet { Name = "Whiskers", Age = 1 } };
return cats;
}
static Pet[] GetDogs() {
Pet[] dogs = { new Pet { Name = "Bounder", Age = 3 },
new Pet { Name = "Snoopy", Age = 14 },
new Pet { Name = "Fido", Age = 9 } };
return dogs;
}
}
class Pet {
public string Name { get; set; }
public int Age { get; set; }
}
}
VB
Module Module1
Sub Main()
Dim cats As List(Of Pet) = GetCats()
Dim dogs As List(Of Pet) = GetDogs()
Dim list = cats.Cast(Of Pet)().Concat(dogs.Cast(Of Pet)()).ToList()
For Each e In list
Console.WriteLine("Name = {0}", e.Name)
Next
Console.WriteLine(vbLf & "Press any key to continue.")
Console.ReadKey()
End Sub
Function GetCats() As List(Of Pet)
Dim cats As New List(Of Pet)
cats.Add(New Pet With {.Name = "Barley", .Age = 8})
cats.Add(New Pet With {.Name = "Boots", .Age = 4})
cats.Add(New Pet With {.Name = "Whiskers", .Age = 1})
Return cats
End Function
Function GetDogs() As List(Of Pet)
Dim dogs As New List(Of Pet)
dogs.Add(New Pet With {.Name = "Bounder", .Age = 3})
dogs.Add(New Pet With {.Name = "Snoopy", .Age = 14})
dogs.Add(New Pet With {.Name = "Fido", .Age = 9})
Return dogs
End Function
Class Pet
Public Property Name As String
Public Property Age As Integer
End Class
End Module
Quando il codice sopra in C # o VB viene compilato ed eseguito, produce il seguente risultato:
Barley
Boots
Whiskers
Bounder
Snoopy
Fido
Press any key to continue.