Ich möchte eine Liste in zwei Listen aufteilen, eine, die direkt behandelt werden kann, und die andere ist der Rest, der in einer Kette an andere Handler weitergegeben wird.
Eingabe:
Ausgabe:
Gibt es das schon? Vielleicht eine Linq-Methode, an die ich momentan nicht denke? Hat jemand sonst ein gutes C # -Beispiel?
Nach einigem Nachdenken und einigen ziemlich abwegigen Ideen bin ich zu dem Schluss gekommen: Versuch nicht, LINQ dazu zu bringen, dies für dich zu tun.
Haben Sie ein paar Schleifen, die Ihre Eingabesequenz konsumieren, übergeben Sie jedes Element an den ersten "Handler", der damit zurechtkommt, und stellen Sie entweder sicher, dass Ihr letzter Handler alles fängt oder im schlimmsten Fall eine List
zurückgibt co_de%.
Dies hat den Vorteil, dass jedes Element in der Reihenfolge der Eingabe behandelt wird, anstatt sie in Gruppen zu unterteilen und die Reihenfolge vor dem, was Sie später tun, zu verlieren.
Ich stimme Servys Antwort zu, aber nach den Kommentaren dachte ich, dass dieser Ansatz interessant sein könnte:
%Vor%das könnte so verwendet werden:
%Vor%Hier machen wir Akkumulation auf der sekundären Sequenz (die "falschen" Werte), aber Live-Verarbeitung dieser sekundären Sequenz wäre auch möglich, also mit nur einer Aufzählung der Quelle.