none
Стоит ли реализовывать IEnumerable RRS feed

  • Вопрос

  • Всем привет! Подскажите, в каких случаях стоит делать свой класс коллекции и реализовывать в нем IEnumerable, а в каких пользоваться generic'ами?
    6 ноября 2014 г. 13:14

Ответы

  • Очень просто: если коллекция должна делать что то что станартные классы не делают то делать свое, иначе использовать то что есть.

    Пример 1: надо обеспечить быстрый доступ к группам объектов по какому либо признаку. Стандартные классы такого не делают, стало быть создаем свой собественный.

    Пример 2: надо хранить классы в том порядке в котором они пришли. Стандрные классы это делают, стало быть используем их.

    Это касается совершенно любых функций - используем то что есть если подходит, делаем свое если нет.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    • Помечено в качестве ответа pingvincible 7 ноября 2014 г. 4:36
    6 ноября 2014 г. 17:14
    Модератор

Все ответы

  • Видимо, когда сущность, моделируемую классом, нужно в некоторых сценариях интерпретировать как коллекцию (в дополнение к основной функциональности).

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    6 ноября 2014 г. 14:02
  • Если у меня есть класс сущности, и я хочу создать класс, который будет коллекцией этих сущностей. Я могу в этой коллекции реализовать интерфейс IEnumerable или ICollection, а могу создать свойство типа List<T> или Queue, в зависимости от задачи, и обернуть методы этого свойства в методы моей коллекции.

    Как лучше? От чего это зависит?

    6 ноября 2014 г. 15:21
  • Реализация IEnumerable необходима, если Вы хотите "подсунуть" Вашу коллекцию какому-либо стандартному средству перечисления. К примеру, оператору foreach. Если же перебор элементов коллекции осуществляется "вручную", разницы нет.


    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    6 ноября 2014 г. 16:55
  • Очень просто: если коллекция должна делать что то что станартные классы не делают то делать свое, иначе использовать то что есть.

    Пример 1: надо обеспечить быстрый доступ к группам объектов по какому либо признаку. Стандартные классы такого не делают, стало быть создаем свой собественный.

    Пример 2: надо хранить классы в том порядке в котором они пришли. Стандрные классы это делают, стало быть используем их.

    Это касается совершенно любых функций - используем то что есть если подходит, делаем свое если нет.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    • Помечено в качестве ответа pingvincible 7 ноября 2014 г. 4:36
    6 ноября 2014 г. 17:14
    Модератор
  • Илья, спасибо! Ваш ответ мне очень понравился!
    7 ноября 2014 г. 4:37