Итак, для типа:
CoolCollection<T>
вы могли бы:
foreach (T item in coolCollection)
{
...
}
foreach (CoolNode node in coolCollection)
{
...
}
Если это невозможно, возможно, например, foreach2 или какой-либо другой способ повторения. Часто мне действительно хотелось бы иметь более одного способа итерации по типу.
РЕДАКТИРОВАТЬ: Извините, если это было неясно. По сути, CoolNode — это узел, который создает CoolCollection. У CoolNode есть свойство value для возврата T, но мне нужен еще один итератор, чтобы возвращать только CoolNodes.
EDIT2: я не могу сделать coolCollection.Something для итерации, потому что CoolNodes подключены через свойство Next, например LinkedList. Поэтому мне нужно реализовать 2 итератора.