LINQ-Abfrage zum Aufteilen einer geordneten Liste in Unterlisten zusammenhängender Punkte nach bestimmten KriterienC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 LINQ-Abfrage zum Aufteilen einer geordneten Liste in Unterlisten zusammenhängender Punkte nach bestimmten Kriterien

Post by Anonymous »

Suchen Sie Hilfe beim Schreiben einer LINQ-Abfrage für einige Objekte. Ich glaube, wenn meine LINQ-Fähigkeiten besser wären, könnte ich das mit etwas cleverem GroupBy/SelectMany (oder so?!) machen.

Generell ausgedrückt lautet die Frage: Wie kann ich bei einer gegebenen Liste von Objekten in einer bestimmten Reihenfolge, in der jedes Objekt ein Flag hat, die Liste in Unterlisten aufteilen, wobei jede Unterliste alle zusammenhängenden Punkte enthält, an denen das Flag gesetzt ist?

Eine zwingende Möglichkeit, dies zu tun, wäre wie der folgende Pseudocode:

Code: Select all

foreach object obj
if(obj.FlagSet)
add it to my currentsublist
else
skip to the next obj where FlagSet and start a new sublist
Angesichts der folgenden Eingabe:

{ 1, Flag }, { 2, Flag }, {3, NoFlag }, {4, Flag}, {5, NoFlag}, {6, Flag}...

Ich hätte gerne die folgende Ausgabe:

Liste 1: {1, 2}
Liste 2: {4}
Liste 3: {6}

Und ich würde es gerne funktional über LINQ machen. Irgendwelche Ideen?

(Ich habe mich zuerst umgesehen, aber alle Fragen, die ich sehen konnte, schienen entweder einfach eine Liste zu gruppieren oder in gleiche Größen aufzuteilen, was für mich nicht hilfreich war.)

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post