Каков технически правильный термин для экземпляра класса, который реализует 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."