C# | Adding the elements of the specified collection to the end of the List - GeeksforGeeks

01 Feb, 2019
List<T>.AddRange(IEnumerable<T>) Method is used to add the elements of the specified collection to the end of the List<T>.
Properties of List:
It is different from the arrays. A list can be resized dynamically but arrays cannot.
List class can accept null as a valid value for reference types and it also allows duplicate elements.
If the Count becomes equals to Capacity, then the capacity of the List increases automatically by reallocating the internal array. The existing elements will be copied to the new array before the addition of the new element.
Syntax:
public void AddRange (System.Collections.Generic.IEnumerable<T> collection);

Parameter:
collection: It is the specified collection whose elements will be added to the end of the List<T>.
Exception: This method will give ArgumentNullException if the collection is null.
Note: The collection itself cannot be null, but it can contain elements that are null if type T is a reference type. The order of the elements in the collection is always preserved in the List<T>.
Below programs illustrate the use of above discussed method:
Example 1:
// C# program to illustrate the// List.AddRange Methodusing System;using System.Collections.Generic;  class Geeks {      // Main Method    public static void Main(String[] args)    {          // Creating a List of Strings        List<String> firstlist = new List<String>();          // adding elements in firstlist        firstlist.Add("Geeks");        firstlist.Add("GFG");        firstlist.Add("C#");        firstlist.Add("Tutorials");          Console.WriteLine("Before AddRange Method");        Console.WriteLine();          // displaying the item of List        foreach(String str in firstlist)        {            Console.WriteLine(str);        }          Console.WriteLine("\nAfter AddRange Method\n");          // Here we are using AddRange method        // Which adds the elements of firstlist        // Collection in firstlist again i.e.        // we have copied the whole firstlist        // in it        firstlist.AddRange(firstlist);          // displaying the item of List        foreach(String str in firstlist)        {            Console.WriteLine(str);        }    }}
Output:
Before AddRange Method

Geeks
GFG
C#
Tutorials

After AddRange Method

Geeks
GFG
C#
Tutorials
Geeks
GFG
C#
Tutorials

Example 2:
// C# program to illustrate the// List.AddRange Methodusing System;using System.Collections.Generic;  class Geeks {      // Main Method    public static void Main(String[] args)    {          // Creating a List of Strings        List<String> firstlist = new List<String>();          // adding elements in firstlist        firstlist.Add("Geeks");        firstlist.Add("GFG");        firstlist.Add("C#");        firstlist.Add("Tutorials");          Console.WriteLine("Before AddRange Method");        Console.WriteLine();          // displaying the item of List        foreach(String str in firstlist)        {            Console.WriteLine(str);        }          Console.WriteLine("\nAfter AddRange Method\n");          // taking array of String        string[] str_add = { "Collections",                             "Generic",                             "List" };          // here we are adding the elements        // of the str_add to the end of        // the List<T>.        firstlist.AddRange(str_add);          // displaying the item of List        foreach(String str in firstlist)        {            Console.WriteLine(str);        }    }}
Output:
Before AddRange Method

Geeks
GFG
C#
Tutorials

After AddRange Method

Geeks
GFG
C#
Tutorials
Collections
Generic
List

Reference:
https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1.addrange?view=netframework-4.7.2
CSharp-Collections-Namespace
CSharp-Generic-List
CSharp-Generic-Namespace
CSharp-method
C#
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
C# | Delegates
Difference between Ref and Out keywords in C#
Destructors in C#
Extension Method in C#
C# | Constructors
Introduction to .NET Framework
C# | Abstract Classes
C# | Class and Object
C# | Data Types
C# | Encapsulation