List In C#

List In C#
C# - List<T>

It is the generic version of the ArrayList that comes under System.Collection.Generic namespace. 
The List<T> is a collection of strongly typed objects that can be accessed by index and having methods for searching, sorting, 
and modifying the list.


List<T> Characteristics

It comes under System.Collection.Generic namespace.
List<T> equivalent of the ArrayList, which implements IList<T>.
It provides compile-time type checking and doesn't perform boxing-unboxing because it is generic. List<T> can contain elements of the specified type.
Elements can be accessed by passing an index e.g. myList[0]. Indexes start from zero.
Elements can be added using the AddRange(), Add() methods or collection-initializer syntax.

Creating a List
The List<T> is a generic collection, so we need to specify a type parameter for the type of data it can store. The following e.g. shows how to create a list and add elements.

List<int> student = new List<int>();
student.Add(1); // adding elements using add() method
//adding elements using collection-initializer syntax
var City = new List<string>()
                        "New Delhi",
var city = new List<string>();
city.Add("New Delhi");
city.Add(null);// nulls are allowed for reference type list

In the above example, List<int> student = new List<int>(); creates a list of int type. In the same way, city and City are string type list. 
You can then add elements in a list using the Add() method or the collection-initializer syntax.

// using foreach LINQ method

numbers.ForEach(num => Console.WriteLine(num + ", "));//prints 1, 2, 5, 7, 8, 10,

// using for loop
for(int i = 0; i < numbers.Count; i++)
Accessing a List using LINQ
The List<T> implements the IEnumerable interface. We can query a list using LINQ query syntax or method syntax, as shown below.

Example: LINQ Query on List
var students = new List<Student>() { 
                new Student(){ Id = 1, Name="A"},
                new Student(){ Id = 2, Name="B"},
                new Student(){ Id = 3, Name="C"},
                new Student(){ Id = 4, Name="D"}

Example: Accessing List
List<int> numbers = new List<int>() { 1, 2, 5, 7, 8, 10 };
Console.WriteLine(numbers[0]); // prints 1
Console.WriteLine(numbers[1]); // prints 2
Console.WriteLine(numbers[2]); // prints 5
Console.WriteLine(numbers[3]); // prints 7


ex.: Adding elements in List