List<T> is a class that contains multiple objects of the same data type that can be accessed using an index. For example,
// list containing integer values List<int> number = new List<int>() { 1, 2, 3 }; Here, number is a List containing integer values (1, 2 and 3).
Create a List
To create List<T> in C#, we need to use the System.Collections.Generic namespace. Here is how we can create List<T>.For example,
using System; using System.Collections.Generic; class Program { public static void Main() { // create a list named subjects that contain 2 elements List<string> subjects = new List<string>() { "English", "Math" }; } } Access the List Elements
We can access List using index notation []. For example,
using System; using System.Collections.Generic; class Program { public static void Main() { // create a list List<string> languages = new List<string>() { "Python", "Java" }; // access the first and second elements of languages list Console.WriteLine("The first element of the list is " + languages[0]); Console.WriteLine("The second element of the list is " + languages[1]); } } Output
The first element of the list is Python The second element of the list is Java
Since the index of the list starts from 0:
language[0]- accesses the first elementlanguage[5]- accesses the fourth element
Iterate the List
In C#, we can also loop through each element of List<T> using a for loop. For example,
using System; using System.Collections.Generic; class Program { public static void Main() { // create a list List<string> albums = new List<string>() { "Red", "Midnight", "Reputation" }; // iterate through the albums list for (int i = 0; i < albums.Count; i++) Console.WriteLine(albums[i]); } } Output
Red Midnight Reputation
In the above example, we have looped through the albums list using a for loop.
Note: The Count property returns the total number of elements inside the list.
Basic Operations on List
The List<T> class provides various methods to perform different operations on List. We will look at some commonly used List operations in this tutorial:
- Add Elements
- Insert Elements
- Remove Elements
Let's discuss each operation in detail.
Add Elements to List
To add a single element to the List, we use the Add() method of the List<T> class. For example,
using System; using System.Collections.Generic; class Program { public static void Main() { // create a list List<string> country = new List<string>() { "Russia" }; //add "USA" to the country list country.Add("USA"); // add "Japan" to the country list country.Add("Japan"); // iterate through the country list for (int i = 0; i < country.Count; i++) Console.WriteLine(country[i]); } } Output
Russia USA Japan
In the above example, at first, we have created a country list that contains "Russia".
Then we added "USA" and "Japan" to the list using the Add() method.
Insert Element in a List
To insert an element to a specified index in List, we use the Insert() method of the List<T> class. For example,
using System; using System.Collections.Generic; class Program { public static void Main() { // create a list List<string> languages = new List<string>() { "Python", "Java", "C" }; // insert "JavaScript" at index 2 languages.Insert(2, "JavaScript"); // display element at index 2 Console.WriteLine(languages[2]); } } Output
JavaScript
In the above example,
languages.Insert(2, "JavaScript")inserts"JavaScript"at the 2nd index position
Remove Elements from the List
We can delete one or more items from List<T> using 2 methods:
Remove()- removes the first occurrence of an element from the given listRemoveAt()- removes the elements at the specified position in the list
Let's see examples using both methods.
Example: Remove() Method
using System; using System.Collections.Generic; class Program { public static void Main() { var car = new List<string>() { "BMW", "Tesla", "Suzuki", "Tesla" }; // remove the first occurence of "Tesla" from the list car.Remove("Tesla"); // remove the first occurrence of "Suzuki" car.Remove("Suzuki"); // print the updated list after removing for (int i = 0; i < car.Count; i++) { Console.WriteLine(car[i]); } } } Output
BMW Tesla
Here,
car.Remove("Tesla")- removes the first occurrence of"Tesla"car.Remove("Suzuki)- removes the first occurrence of"Suzuki"
We can see that,
- The original list:
{ "BMW", "Tesla", "Suzuki", "Tesla" } - The modified list:
{"BMW", "Tesla"}
Example: RemoveAt() Method
using System; using System.Collections.Generic; class Program { public static void Main() { var car = new List<string>() { "BMW", "Tesla", "Suzuki", "Tesla" }; // remove the element present at the 2nd index position car.RemoveAt(2); // print the updated list after removing the element for (int i = 0; i < car.Count; i++) { Console.WriteLine(car[i]); } } } Output
BMW Tesla Tesla
In the above example, we have removed the element of List<T> using the RemoveAt() method.
Here, car.RemoveAt(2) removes "Suzuki" from the list.
Frequently Asked Questions
We can also create a List using var keyword. For example,
using System; using System.Collections.Generic; class Program { public static void Main() { // create a list named color var color = new List<string>() { "Red", "Blue", "Pink" }; Console.WriteLine(color[2]); } } Output
Pink