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

Learn More About C# ๐Ÿ“š

1. What is C#? ๐Ÿ‘‰ Explained
2. Main Features of C# ๐Ÿ‘‰ Explained
3. Difference Between C# and Java ๐Ÿ‘‰ Explained
4. Common Language Runtime (CLR) in C# ๐Ÿ‘‰ Explained
5. Common Type System (CTS) in C# ๐Ÿ‘‰ Explained
6. Common Language Specification (CLS) in C# ๐Ÿ‘‰ Explained
7. Value Types vs Reference Types in C# ๐Ÿ‘‰ Explained
8. What is a Namespace in C#? ๐Ÿ‘‰ Explained
9. Purpose of the 'using' Keyword in C# ๐Ÿ‘‰ Explained
10. Different Data Types in C# ๐Ÿ‘‰ Explained
11. Difference Between int and Int32 in C# ๐Ÿ‘‰ Explained
12. Difference Between float, double, and decimal in C# ๐Ÿ‘‰ Explained
13. What is the Default Value of a Boolean in C#? ๐Ÿ‘‰ Explained
14. What is Boxing and Unboxing in C# ๐Ÿ‘‰ Explained
15. What are the Different Types of Operators in C# ๐Ÿ‘‰ Explained
16. Difference Between Equals and == in C# ๐Ÿ‘‰ Explained
17. What is the Null-Coalescing Operator ?? in C# ๐Ÿ‘‰ Explained
18. What is the Ternary Operator in C# ๐Ÿ‘‰ Explained
19. How Does the Switch Statement Work in C# ๐Ÿ‘‰ Explained
20. What is Object-Oriented Programming in C# ๐Ÿ‘‰ Explained
21. What are the Four Pillars of OOP in C# ๐Ÿ‘‰ Explained
22. What is Encapsulation in C# ๐Ÿ‘‰ Explained
23. What is Inheritance in C# ๐Ÿ‘‰ Explained
24. What is Polymorphism in C# ๐Ÿ‘‰ Explained
25. What is Abstraction in C# ๐Ÿ‘‰ Explained
26. What is an Abstract Class in C# ๐Ÿ‘‰ Explained
27. What is an Interface in C# ๐Ÿ‘‰ Explained
28. Can a Class Implement Multiple Interfaces in C#? ๐Ÿ‘‰ Explained
29. Difference Between Abstract Class and Interface in C# ๐Ÿ‘‰ Explained
30. How Do You Create a Class in C#? ๐Ÿ‘‰ Explained
31. What is a Constructor in C# ๐Ÿ‘‰ Explained
32. What Are the Types of Constructors in C# ๐Ÿ‘‰ Explained
33. What is a Static Constructor in C# ๐Ÿ‘‰ Explained
34. Difference Between Static and Non-Static Members in C# ๐Ÿ‘‰ Explained
35. What is the Use of 'this' Keyword in C# ๐Ÿ‘‰ Explained
36. What is a Destructor in C# ๐Ÿ‘‰ Explained
37. What is Object Initializer Syntax in C# ๐Ÿ‘‰ Explained
38. What is the Difference Between Field and Property in C# ๐Ÿ‘‰ Explained
Share:

Tags:


Feedback Modal Popup