Also für einen Typ wie:Ist es möglich, mehrere Iteratoren für einen Typ in C# zu schreiben?
CoolCollection<T>
könnten Sie haben:
foreach (T item in coolCollection)
{
...
}
foreach (CoolNode node in coolCollection)
{
...
}
Wenn dies nicht möglich ist, vielleicht wie foreach2, oder auf andere Weise zu durchlaufen. Oft möchte ich mehr als eine Art, auf einen Typ zu iterieren.
EDIT: Sorry, wenn es nicht klar war. Grundsätzlich ist CoolNode ein Knoten, der CoolCollection macht. CoolNode hat eine Eigenschaft namens value, um T zurückzugeben, aber ich brauche einen weiteren Iterator, um nur CoolNodes zurückzugeben.
EDIT2: Ich kann nicht coolCollection.Something zu iterieren, weil CoolNodes über eine Eigenschaft namens Next, wie eine LinkedList verbunden sind. Also muss ich 2 Iteratoren implementieren.
Also, was ist die Frage? Sie können Ihre Sammlung nicht mehr als einmal durchlaufen? – GalacticCowboy
Es ist nicht klar, was du meinst. Sind die verschiedenen Unterkollektionen von T und CoolNode oder nur verschiedene Ansichten derselben Sammlung? Für die erste, sollten Sie tun, wie J.13.L sagte und haben Methoden oder Eigenschaften, die eine entsprechende Enumerable für jeden zurückgeben. Für die zweite können Sie eine geeignete Besetzung oder Konvertierung verwenden. –