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.