Создание собственной обобщенной коллекции, аналогичной List - C#

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

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

У меня такой вопрос, можно ли создать свою собственну обобщенную коллекцию (я не оч хорошо владею всеми аспектами C#), аналогичную List<T>, читал статью http://www.codeproject.com/Articles/...sing-ICollecti, там подобие описывается, но у меня возник вопрос, там для динамического добавления/удаления используют переменную типа ArrayList, но я знаю что ArrayList все преобразовывает в object, тоесть boxing/unboxing, а это на сколько мне известно затратно, можно ли для динамического извлечения создать что-то свое строго типизированное.

Решение задачи: «Создание собственной обобщенной коллекции, аналогичной List»

textual
Листинг программы
    public class MyArray<T>
    {
        private T[] buffer = new T[5];
 
        public int Count { get; private set; }
 
        public T this[int i]
        {
            get 
            {
                if (i < 0 || i >= Count)
                    throw new IndexOutOfRangeException();
                return buffer[i];
            }
 
            set
            {
                if (i < 0 || i >= Count)
                    throw new IndexOutOfRangeException();
                buffer[i] = value;
            }
        }
 
        public void Add(T value)
        {
            if (Count >= buffer.Length)
                Array.Resize<T>(ref buffer, buffer.Length*2);
            buffer[Count] = value;
            Count++;
        }
    }

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


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

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

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