Concatenación en LINQ
Realiza la concatenación de dos secuencias y es bastante similar al operador de la Unión en términos de su funcionamiento, excepto por el hecho de que no elimina los duplicados.
Operador | Descripción | Sintaxis de expresión de consulta de C # | Sintaxis de expresión de consulta de VB |
---|---|---|---|
Concat | Se concatenan dos secuencias para la formación de una sola secuencia. | No aplica | No aplica |
Ejemplo de Concat - Método 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
Cuando el código anterior en C # o VB se compila y ejecuta, produce el siguiente resultado:
Barley
Boots
Whiskers
Bounder
Snoopy
Fido
Press any key to continue.