What is a List<T> in C#?
๐ก Concept: List<T>
List<T> is a generic collection in C# that provides a dynamic array with strong typing, allowing you to add, remove, and access elements efficiently.
๐ Quick Intro
Unlike arrays, List<T> can dynamically resize and provides many useful methods to manipulate collections safely and efficiently.
๐ง Analogy
Think of List<T> as a flexible expandable suitcase that can grow or shrink depending on what you pack, while keeping all items organized by type.
๐ง Technical Explanation
- ๐ List<T> is implemented using arrays internally, resizing automatically when needed.
- ๐ Provides compile-time type safety through generics.
- โก Supports efficient addition, removal, searching, and sorting operations.
- ๐ฏ Commonly used over ArrayList and arrays for better type safety and flexibility.
- ๐ Supports LINQ queries as it implements IEnumerable<T>.
๐ฏ Use Cases
- โ Storing collections of items when the size can change dynamically.
- โ When type safety and performance are important.
- โ Performing frequent insertions and deletions.
- โ Working with LINQ for querying collections.
๐ป Code Example
// Creating and using List
List<string> fruits = new List<string>();
fruits.Add("Apple");
fruits.Add("Banana");
fruits.Add("Cherry");
foreach(var fruit in fruits) {
Console.WriteLine(fruit);
}

โ Interview Q&A
Q1: What is List<T> in C#?
A: A generic collection that can dynamically resize and store items of a specified type.
Q2: How is List<T> different from an array?
A: List<T> can resize dynamically; arrays have fixed size.
Q3: Can List<T> store different types?
A: No, it is strongly typed to one type.
Q4: How do you add items to a List<T>?
A: Using the Add() method.
Q5: Does List<T> support LINQ queries?
A: Yes, it implements IEnumerable<T>.
Q6: What namespace contains List<T>?
A: System.Collections.Generic.
Q7: Can List<T> store null values?
A: Yes, for reference types.
Q8: Is List<T> thread-safe?
A: No, external synchronization is required.
Q9: How do you remove items?
A: Using Remove() or RemoveAt() methods.
Q10: Can List<T> be sorted?
A: Yes, using the Sort() method.
๐ MCQs
Q1. What is List<T>?
- A generic dynamic collection
- A fixed array
- A non-generic list
- A delegate
Q2. How does List<T> differ from array?
- It can resize dynamically
- It has fixed size
- It stores different types
- It is slower
Q3. Can List<T> store multiple types?
- Yes
- No
- Only for primitives
- Only for objects
Q4. How to add items to List<T>?
- Add()
- Insert()
- Append()
- Push()
Q5. Does List<T> support LINQ?
- No
- Yes
- Only arrays
- Only IEnumerable
Q6. What namespace has List<T>?
- System.Collections
- System.Generic
- System.Collections.Generic
- System.Core
Q7. Is List<T> thread-safe?
- Yes
- No
- Sometimes
- Depends
Q8. How to remove items from List<T>?
- Delete()
- Remove()
- RemoveAt()
- Clear()
Q9. Can List<T> store nulls?
- No
- Yes
- Only value types
- Only objects
Q10. Can List<T> be sorted?
- No
- Yes
- Only arrays
- Only with LINQ
๐ก Bonus Insight
List<T> combines flexibility with type safety and performance, making it the preferred collection for most C# applications involving dynamic data.
๐ PDF Download
Need a handy summary for your notes? Download this topic as a PDF!