public class MySequence : ISequence { private object[] sequence; public MySequence(int size) { sequence = new object[size]; } public object this[int index] { get { return sequence[index]; } set { sequence[index] = value; } } public int Count { get { return sequence.Length; } } }
public class MyEnumerable : IEnumerable { private ISequence sequence; public MyEnumerable(ISequence seq) { sequence = seq; } public IEnumerator GetEnumerator() { for (int i = 0; i < sequence.Count; i++) { yield return sequence[i]; } } }This code creates a custom enumerable class that uses the ISequence interface. The MyEnumerable constructor takes an ISequence object as a parameter and stores it in the private sequence field. The GetEnumerator method uses a for loop and the yield return statement to iterate through the sequence and return each item. Package Library: System.Collections in the .NET Framework.