Ich habe eine Sequenz und ich muss es basierend auf der Bedingung von jedem Element wiederholen. Zum Beispiel muss ich ein Element erneut verarbeiten, wenn es mit einem Flag "fehlgeschlagen" markiert ist. Mein Problem ist, ich kann nicht finden, wie man den while-loop
Betrieb tut.Wie kann ich die beobachtbare Sequenz basierend auf der Bedingung von jedem Element ablaufen lassen?
TakeWhile
ist fast das, was ich brauche, aber es wiederholt sich nicht.
Dies ist ein interessanter Ansatz. Sie könnten das Element in ein 'Tuple'' verpacken und jedes Mal, wenn Sie es durch' retries' schieben, das 'int' erhöhen, um die Anzahl der Versuche zu verfolgen. Dies würde Ihnen die Möglichkeit geben, es nach x Versuchen anders zu handhaben. –
Danke für Ihre Antwort. Als ich den Code zum ersten Mal schrieb, löschte ich zuerst Elemente aus der Sequenz und bald merkte ich, dass es nicht funktionierte ... die einzige Lösung war, das ursprüngliche Objekt in ein anderes zu wickeln und ein "gescheitertes" Flag einzufügen. Dein zweiter Code kann ich nicht gut verstehen. Wie genau transformiert Arbeit (ich meine, wo sind sie zurückgegeben)? – CodeArtist
@CodeArtist: Sorry, dieser Code war falsch, und ich habe es jetzt behoben. Die Idee ist, dass Sie nicht den Status jedes Elements ändern, sondern ein neues mit einem anderen Status erstellen. Beachten Sie auch, dass der einzige Grund, warum ich ein neues Element hinzufüge, wenn die Dinge erfolgreich sind, für den Fall ist, dass Sie die Ergebnisse abonnieren müssen: where Failed == false. Wenn Sie das nicht tun müssen, können Sie vermeiden, dass Sie diese in das Wiederholungssubjekt einfügen. – StriplingWarrior