Die Anforderung, die ich habe, ist für jeden Typ T, ich habe eine Reihe von Elementen (zwischen 1-30 +) und zunächst brauche ich zufälliger Gegenstand, dann brauche ich den nächsten, und wenn ich den letzten Gegenstand erreiche, sollte er den ersten zurückgeben und so weiter.Wählen Sie die richtige Datenstruktur für dieses Problem: kreisförmige Liste, Liste, Array oder etwas anderes
Also sagen T ist Icon, und die Sammlung ist Images (Instanz).
Ich mag haben:
// program start:
Icon icon = RandomIcon(); // say 5th one for this case
// user clicks next icon:
icon = current++; (6, 7, 8, 1, 2, ...)
Für mich eine kreisförmige verkettete Liste sinnvoll ist, mit der Ausnahme, dass ich O zu tun habe (n), wobei n der Zufallsindex ist.
Ich möchte die sauberste, beste Implementierung haben, daher die Frage.
Danke Reed. Wie würde das "GetNextItem" in diesem Fall heißen? Ich muss die internen IEnumerable-Methoden aufrufen? –
Joan: Nein. Ich werde meine Antwort bearbeiten, um es dir zu zeigen. –
Danke Reed. Ich dachte irgendwie, du würdest foreach benutzen. Also in diesem Fall ist 2 für Schleifen besser als den zufälligen Index Code innerhalb des Enumerators setzen, richtig? Sollte der zufällige Index-Code im Konstruktor sein? Das ist was ich denke. –