DEV Community

Cover image for Collections in C#
Shreyans Padmani
Shreyans Padmani

Posted on • Edited on

Collections in C#

Collections in C# are essential for managing groups of related data. The .NET Framework provides a hierarchy of collection interfaces and classes. Among these, three key interfaces often come up in day-to-day development

Image description

IEnumerable

  • Read-only, forward-only access – Ideal for looping through data using foreach. You can’t modify the collection.
  • Deferred Execution (Lazy Evaluation) – LINQ queries return IEnumerable, and the actual processing doesn't happen until you iterate over the collection.
  • Minimal Overhead – Great for when you only need to read data.

Use Case:
Filtering or transforming data from a database or in-memory source without changing it.

Image description

ICollection

  • Supports Add/Remove/Clear – Unlike IEnumerable, it allows modifying the collection contents.
  • Exposes Count property – Useful to check collection size efficiently.
  • Abstracts concrete collections – Useful when writing APIs that shouldn’t care about specific collection types (e.g., List, HashSet, etc.).

Use Case:
Passing modifiable collections between services or layers without exposing underlying data structure.

Image description

IList

  • Index-Based Access – Allows reading and writing via list[index].
  • Insert and Remove by Index – Easily insert or delete items at specific positions.
  • Ideal for Ordered Data – Useful for collections where order and position matter.

Use Case:
Manage an ordered list where you frequently insert, update, or remove items by position (e.g., UI elements, to-do list).

Image description

Conclusion

In C#, choosing the right collection interface—IEnumerable, ICollection, or IList—depends on the specific needs of your application.

Each interface builds upon the previous one, adding more capabilities:

IEnumerable → ICollection → IList

By understanding their differences, you can write cleaner, more flexible, and maintainable code tailored to your application's needs.

Top comments (0)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.