Пользовательская коллекция (generic) - C#
Формулировка задачи:
Решение проблемы требует создать коллекцию, которая внутри себя хранит элементы в List<>, если количество элементов <=5, и переключается на SortedList<> (элементы копируются в другую внутреннюю коллекцию)
Вопрос. Я правильно решил переопределять метод Add() для выполнения задачи или можно решить ее проще? Ну и при таком коде, после добавления в коллекцию UserCollection элементов и перебора их с помощью foreach выводится только первые пять элементов. Как коллекция List<T> взаимодействует с SortedList<int, T>?
Метод тоже сыроват, правильно ли я думаю что надо вводить индекс, начинать его с -1, т.е добавлять элементы в коллекции "по классике"?
class UserCollection<T> : ICollection<T> { List<T> elements = new List<T>(); SortedList<int, T> sortedList = new SortedList<int, T>(); public void Add(T items) { int position1 = elements.Count() + 1; int position2 = sortedList.Count() + 1; if (position1 <= 5) { elements.Add(items); } else if (position1 == 6) { //int count = 0; foreach (T el in elements) { //count += 1; sortedList.Add(sortedList.Count()+10, el); } sortedList.Add(sortedList.Count()+10, items); } else if (position1 > 6) { sortedList.Add(position2, items); } // Реализованы методы для ICollection<T> } }
Решение задачи: «Пользовательская коллекция (generic)»
textual
Листинг программы
++position1
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д