Так что для типа, как:Можно ли написать несколько итераторов для типа в C#?
CoolCollection<T>
вы могли бы:
foreach (T item in coolCollection)
{
...
}
foreach (CoolNode node in coolCollection)
{
...
}
Если это не представляется возможным, может быть, как foreach2, или каким-либо другим способом итерацию. Часто мне хотелось бы больше, чем один способ повторения по типу.
EDIT: Извините, если не было ясно. В основном CoolNode - это узел, который делает CoolCollection. CoolNode имеет свойство, называемое значением для возврата T, но мне нужен еще один итератор, чтобы возвращать только CoolNodes.
EDIT2: Я не могу сделать coolCollection.Что-то итерации, потому что CoolNodes связаны через свойство, называемое Next, как LinkedList. Поэтому мне нужно реализовать 2 итератора.
Так что это вопрос? Вы не можете перебирать свою коллекцию более одного раза? – GalacticCowboy
Неясно, что вы имеете в виду. Являются ли разные субколлекции T и CoolNode или просто разные представления одной коллекции? Во-первых, вы должны сделать, например, J.13.L, и иметь методы или свойства, которые возвращают соответствующий Enumerable для каждого. Во-вторых, вы можете использовать соответствующий перевод или преобразование. –