Каков технически правильный термин для экземпляра класса, который реализует IEnumerable?

Мы называем такой экземпляр "коллекцией"? "Перечислимый"? Или что-то другое? Я задаю свои две основные цели:

  • Чтобы понять другие разработчики, не объясняя, что класс реализует IEnumerable.
  • Быть технически корректным и точным.

Ответ 1

Чтобы быть технически точным, я бы сообщил разработчикам, что он реализует IEnumerable.

Говорить что-либо еще менее информативно.

Любой, кто понимает IEnumerable, сразу поймет возможности вашего класса. Любой, кто этого не сделает, не получит его, как вы описали его.

Ответ 2

"перечислимый"?

Это довольно широко принятый ответ; Я бы рекомендовал не называть его коллекцией, потому что это может означать, что объект реализует ICollection или ICollection<T>.

Ответ 3

Нет, поэтому я бы использовал фразу "перечислимый тип".

Коллекция - это нечто, содержащее конечное число элементов. Перечислимый тип не обязательно является коллекцией, потому что это может быть бесконечный список.

Список - это коллекция, имеющая определенный порядок.

Ответ 4

Для этого нет конкретного термина, хотя большинство классов, реализующих IEnumerable, являются коллекциями. Заметным исключением является String, но его можно рассматривать как набор символов...

Ответ 5

Обычно я просто говорю "У меня есть этот IEnumerable...", и это кажется достаточно на работе и в SO. Он ясно выражает, что я говорю о классе, который реализует IEnumerable.

Ответ 6

Я бы согласился с тем, что предложил " enumerator enumerable", но если вы хотите что-то другое, также будет работать термин "последовательность".

Ответ 7

Вызов его с помощью "IEnumerable" будет вполне уместным. Это делает очень очевидным, что класс реализует IEnumerable и является кратким и точным.

С объектно-ориентированной точки зрения этот класс IS-AN IEnumerable, поэтому снова это оправдано.

Ответ 8

Класс ObservableCollection называет его "коллекцией".

    //
    // Summary:
    //     Initializes a new instance of the System.Collections.ObjectModel.ObservableCollection<T>
    //     class that contains elements copied from the specified collection.
    //
    // Parameters:
    //   collection:
    //     The collection from which the elements are copied.
    //
    // Exceptions:
    //   System.ArgumentNullException:
    //     The collection parameter cannot be null.
    public ObservableCollection(IEnumerable<T> collection);

Ответ 9

Я предлагаю "Перечисление".

Это технически означает результат перечисления, но обычно это воспринимается как интерфейс IEnumerable.

Стив

Ответ 10

Трудность состоит в том, что IEnumerable и слово "enumerable" не являются существительным. Вы говорите "something is enumerable", а не "something is an enumerable". Другими словами, перечислимый объект - это то, что вы делаете с объектом, а не определение самого объекта.

MSDN описывает это как:

IEnumerable - выдает счетчик, который поддерживает простую итерацию по коллекции определенного типа.

Чтобы быть точным при оформлении документа, я бы использовал:

"List <int> - это перечислимая коллекция значений System.Int32."