Home
C#
Concat Extension: Combine Lists and Arrays
Updated Mar 28, 2024
Dot Net Perls
Concat. This is a C# 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.
IEnumerable
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.
List
Note This might cause some performance degradation because of the flexibility and implementation of the extension methods.
Extension
using System;
using System.Linq;

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.
ToList
using System;
using System.Collections.Generic;
using System.Linq;

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 !
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.
string.Concat
Dot Net Perls is a collection of pages with code examples, which are updated to stay current. Programming is an art, and it can be learned from examples.
Donate to this site to help offset the costs of running the server. Sites like this will cease to exist if there is no financial support for them.
Sam Allen is passionate about computer languages, and he maintains 100% of the material available on this website. He hopes it makes the world a nicer place.
This page was last updated on Mar 28, 2024 (edit).
Home
Changes
© 2007-2025 Sam Allen