Пользовательская коллекция (generic) - C#

Узнай цену своей работы

Формулировка задачи:

Решение проблемы требует создать коллекцию, которая внутри себя хранит элементы в List<>, если количество элементов <=5, и переключается на SortedList<> (элементы копируются в другую внутреннюю коллекцию)
    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>
}
        }
Вопрос. Я правильно решил переопределять метод Add() для выполнения задачи или можно решить ее проще? Ну и при таком коде, после добавления в коллекцию UserCollection элементов и перебора их с помощью foreach выводится только первые пять элементов. Как коллекция List<T> взаимодействует с SortedList<int, T>? Метод тоже сыроват, правильно ли я думаю что надо вводить индекс, начинать его с -1, т.е добавлять элементы в коллекции "по классике"?

Решение задачи: «Пользовательская коллекция (generic)»

textual
Листинг программы
 ++position1

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы