How to implement IEnumerable<T> in C#

How to implement IEnumerable<T> in C#

Implementing IEnumerable<T> in C# allows objects to be enumerated using the foreach loop construct. The IEnumerable<T> interface defines a single method GetEnumerator() that returns an enumerator object.

Here is an example implementation of IEnumerable<T> for a simple custom collection class:

 using System; using System.Collections; using System.Collections.Generic; class CustomCollection<T> : IEnumerable<T> { private T[] items; public CustomCollection() { items = new T[0]; } public void Add(T item) { Array.Resize(ref items, items.Length + 1); items[items.Length - 1] = item; } public IEnumerator<T> GetEnumerator() { for (int i = 0; i < items.Length; i++) { yield return items[i]; } } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } } 

In the above example, GetEnumerator() is implemented using the yield keyword to define an iterator. The GetEnumerator() method returns an instance of the iterator, which implements the IEnumerator<T> interface. The IEnumerator<T> interface defines two methods, MoveNext() and Reset(), and a property Current that is used to iterate through the collection.

To use the foreach loop with the CustomCollection<T> class, simply create an instance of the collection and iterate through it as follows:

 CustomCollection<int> collection = new CustomCollection<int>(); collection.Add(1); collection.Add(2); collection.Add(3); foreach (int item in collection) { Console.WriteLine(item); } 

Examples

  1. How to implement IEnumerable<T> in C#? Description: This query focuses on understanding and implementing the IEnumerable<T> interface in C# to create custom collections or data structures.

    Code Implementation:

    public class CustomCollection<T> : IEnumerable<T> { private List<T> items = new List<T>(); public void Add(T item) { items.Add(item); } public IEnumerator<T> GetEnumerator() { return items.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } } 
  2. C# IEnumerable<T> example Description: Users are looking for a concrete example demonstrating the implementation and usage of IEnumerable<T> interface in C#.

    Code Implementation:

    public class CustomCollection<T> : IEnumerable<T> { private List<T> items = new List<T>(); public void Add(T item) { items.Add(item); } public IEnumerator<T> GetEnumerator() { return items.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } } 
  3. How to create a custom IEnumerable<T> collection in C#? Description: This query seeks guidance on creating a custom collection that implements the IEnumerable<T> interface in C#.

    Code Implementation:

    public class CustomCollection<T> : IEnumerable<T> { // Implementation details... } 
  4. Implementing IEnumerable<T> for a custom data structure in C# Description: Users want instructions on implementing the IEnumerable<T> interface for a custom data structure they have defined in C#.

    Code Implementation:

    public class CustomDataStructure<T> : IEnumerable<T> { // Implementation details... } 
  5. Using LINQ with IEnumerable<T> in C# Description: This query revolves around utilizing LINQ (Language Integrated Query) with collections that implement the IEnumerable<T> interface in C#.

    Code Implementation:

    var customCollection = new CustomCollection<int>(); // Assuming CustomCollection<T> is implemented var queryResult = customCollection.Where(item => item > 5); 
  6. How to iterate over IEnumerable<T> in C#? Description: Users want to know how to iterate over collections that implement the IEnumerable<T> interface in C#.

    Code Implementation:

    var customCollection = new CustomCollection<int>(); // Assuming CustomCollection<T> is implemented foreach (var item in customCollection) { // Do something with 'item' } 
  7. C# IEnumerable<T> with yield return Description: This query is about using the yield return statement with methods that return IEnumerable<T> in C# to create iterators.

    Code Implementation:

    public IEnumerable<int> GetNumbers() { for (int i = 0; i < 10; i++) { yield return i; } } 
  8. Converting IEnumerable<T> to array in C# Description: Users are interested in converting collections that implement IEnumerable<T> to arrays in C#.

    Code Implementation:

    var customCollection = new CustomCollection<int>(); // Assuming CustomCollection<T> is implemented var array = customCollection.ToArray(); 
  9. Sorting IEnumerable<T> in C# Description: This query focuses on sorting collections that implement IEnumerable<T> interface in C# using various sorting algorithms or LINQ methods.

    Code Implementation:

    var customCollection = new CustomCollection<int>(); // Assuming CustomCollection<T> is implemented var sortedCollection = customCollection.OrderBy(item => item); 

More Tags

floating-accuracy buffer preact android-proguard asp.net-core-signalr hibernate-criteria line-numbers overlapping gmail-api gesture

More C# Questions

More Retirement Calculators

More Stoichiometry Calculators

More Electronics Circuits Calculators

More Everyday Utility Calculators