Ich weiß, es gibt ein paar ähnlich formulierte Fragen zu SO über Permutation Auflistung, aber sie scheinen nicht ganz richtig zu adressieren wirklich, was ich suche. Ich weiß, dass es einen Weg gibt, dies zu tun, aber ich zeichne ein leeres Blatt. Ich habe eine flache Datei, die dieses Format ähnelt:Teilen und verbinden Sie mehrere logische "Zweige" von String-Daten
Col1|Col2|Col3|Col4|Col5|Col6
a|b,c,d|e|f|g,h|i
. . .
hier Jetzt ist der Trick: Ich habe eine Liste aller möglichen Permutationen dieser Zeilen erstellt werden soll, wo eine durch Kommata getrennte Liste in der Zeile Werte annehmen kann.
a/b/e/f/g/i
a/b/e/f/h/i
a/c/e/f/g/i
a/c/e/f/h/i
a/d/e/f/g/i
a/d/e/f/h/i
Diese mir scheint, wie es wäre: Zum Beispiel sollte ich ein IEnumerable<string>
, die die oben genannten Zeilen als solche nehmen können:
IEnumerable<string> row = new string[] { "a", "b,c,d", "e", "f", "g,h", "i" };
IEnumerable<string> permutations = GetPermutations(row, delimiter: "/");
die folgende Sammlung von String-Daten Dies sollte erzeugen elegant in eine rekursive Methode passen, aber anscheinend habe ich einen schlechten Fall der montags und ich kann mich nicht richtig damit beschäftigen, wie ich es angehen soll. Einige Hilfe würde sehr geschätzt werden. Wie sollte GetPermutations(IEnumerable<string>, string)
aussehen?
Ist das Hausaufgaben? –
Hah nein, ich nähere mich 40, aber danke für die Nachfrage. Nein, das ist für eine Werbeanwendung. Ich versuche, eine Konfigurationsdatei für Seiten zu lesen, auf denen bestimmte Anzeigen erscheinen. –
Haben Sie Code oder Pseudo-Code zur Hand? Posting, das helfen kann, die Antwort zu erhalten, die Sie erreichen möchten. Ich kann mir ein paar Wege vorstellen, wie man es mit roher Gewalt macht, aber ich konnte es (noch) nicht in eine rekursive Methode umwandeln. – Tim