Создание коллекции MyGenericList - C#
Формулировка задачи:
Добрий день!
Мне поставлена задача создать свою коллекцию(типо List), которая должна работать с любыми аргументами(Generic).
Для этого необходимо наследовать интерфейсы. В моем случае, я наследовал интерфейс ICollection<T>. Там нужно реализовать около десятка методов. Я сначало просто написал эти методы пустыми чтоб программа скомпилировалась, но возникла проблема с методами GetEnumerator. У меня он такой
Однако компилятор хочет еще один метод тоже GetEnumerator(). Я не понимаю что делать.
Также необходимы советы по реализации подобных методов, ибо я не очень понимаю как они работают.
public IEnumerator<T> GetEnumerator() { }
Решение задачи: «Создание коллекции MyGenericList»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace CollectionTest { class Program { static void Main(string[] args) { MycCollection<CollectionItem> myCollection = new MycCollection<CollectionItem>(); myCollection.Add(new CollectionItem { ID = 1, Name = "One" }); myCollection.Add(new CollectionItem { ID = 2, Name = "Two" }); myCollection.Add(new CollectionItem { ID = 3, Name = "Three" }); foreach (CollectionItem item in myCollection) { Console.WriteLine(item); } myCollection.RemoveAt(2); Console.WriteLine(); foreach (CollectionItem item in myCollection) { Console.WriteLine(item); } Console.ReadLine(); } } //Класс-элемент коллекции public class CollectionItem { public int ID { get; set; } public string Name { get; set; } public override string ToString() { return string.Format("ID: {0}, Name: {1}", ID, Name); } } //Класс обобщенной коллекции public class MycCollection<T> : IEnumerable<T> { private List<T> innerList; public MycCollection() { innerList = new List<T>(); } public void Add(T arg) { innerList.Add(arg); } public void RemoveAt(int index) { if (innerList.Count <= index) throw new IndexOutOfRangeException("Error!"); else innerList.RemoveAt(index); } public IEnumerator<T> GetEnumerator() { return innerList.GetEnumerator(); } System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return innerList.GetEnumerator(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д