C# Concat Extension: Combine Lists and ArraysUse the Concat extension method from System.Linq. Concat combines 2 IEnumerables.
dot net perls
Concat. This is an extension method. With it we take 2 IEnumerable collections. We then get a collection with all of the elements together.
This extension method effectively concatenates sequences. We can combine Lists or arrays (and even different IEnumerables) together.
Example. In this program, we include the System.Linq namespace to get access to the Concat method. Two arrays are created upon execution of the Main method.
Then We call the Concat method twice, in different orders, and display the results.
Tip If you have ever needed to write custom code to combine two arrays or Lists into a single one, the Concat method might be useful.
Note This might cause some performance degradation because of the flexibility and implementation of the extension methods.
C# program that uses Concat extension
using System; using System.Linq; class Program { static void Main() { int[] array1 = { 1, 3, 5 }; int[] array2 = { 0, 2, 4 }; // Concat array1 and array2. var result1 = array1.Concat(array2); foreach (int value in result1) { Console.WriteLine(value); } Console.WriteLine(); // Concat array2 and then array1. var result2 = array2.Concat(array1); foreach (int value in result2) { Console.WriteLine(value); } } }
1 3 5 0 2 4 0 2 4 1 3 5
List example. To use Concat, we must have 2 collections that implement IEnumerable. This includes the List type or the array type.
Info You can combine a List and an array or two Lists. The element type (string) of both collections must be the same.
Return Concat returns an IEnumerable type. The "var result" in the code is of that type.
Also You can convert an IEnumerable back into a List with the ToList extension method.
C# program that uses Concat method on Lists
using System; using System.Collections.Generic; using System.Linq; class Program { static void Main() { List<string> list1 = new List<string>(); list1.Add("dot"); list1.Add("net"); List<string> list2 = new List<string>(); list2.Add("perls"); list2.Add("!"); var result = list1.Concat(list2); List<string> resultList = result.ToList(); foreach (var entry in resultList) { Console.WriteLine(entry); } } }
dot net perls !
A summary. If you have two Lists, you can use the Concat method to combine them. For optimal performance, however, using a method such as AddRange would be better if you need a List result.
Much like string.Concat concatenates strings, the Concat extension concatenates collections. Whenever we need to combine two arrays into a third array, we use the Concat extension method.
© 2007-2021 sam allen. see site info on the changelog