Concatenation in LINQ
Performs concatenation of two sequences and is quite similar to the Union operator in terms of its operation except of the fact that this does not remove duplicates.
| Operator | Description | C# Query Expression Syntax | VB Query Expression Syntax |
|---|---|---|---|
| Concat | Two sequences are concatenated for the formation of a single one sequence. | Not Applicable | Not Applicable |
Example of Concat - Enumerable.Concat(Of TSource) Method
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
When the above code in C# or VB is compiled and executed, it produces the following result −
Barley Boots Whiskers Bounder Snoopy Fido Press any key to continue.
linq_query_operators.htm
Advertisements