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!

๐Ÿ” Navigation

๐Ÿ’ฌ Feedback
๐Ÿš€ Start Learning
Share:

Tags: