Я заметил, что List<T> определяет свой счетчик как struct, а ArrayList определяет его перечислитель как class. Какая разница? Если я должен написать перечислитель для моего класса, какой из них предпочтительнее?
EDIT: Мои требования не могут быть выполнены с помощью yield, поэтому я использую собственный счетчик. Тем не менее, я задаюсь вопросом, было бы лучше следовать строкам List<T> и реализовать его как структуру.