Dynamische Anzahl Strings in gegebenem Muster aus einer List<List<string>> holen

  • C#
  • .NET (FX) 4.0

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von sonne75.

    Dynamische Anzahl Strings in gegebenem Muster aus einer List<List<string>> holen

    Hey Leute,

    Ich muss gerade aus einer List<List<string>> im Zahlenschloss-Prinzip Werte herausholen und in einem String speichern.
    Was ich mit Zahlenschloss-Prinzip meine ist, dass man bei der kleinsten Zahl anfängt, und sich so bis zur Größten durcharbeitet.
    Was mit nur einem Element recht einfach ist, entpuppt sich (für mich im moment) als recht schweirig, wenn die Anzahl der aus der Liste zu holenden strings exakt X ist.
    Ich habe es bereits mit 4 ineinander verschachtelten Schleifen probiert, doch so komme ich geraemal an 2 von X benötigten Strings heran.
    Ebenso dachte ich, dass ich das eventuell per Rekursion lösen könne, jedoch kommt mir auch hier kein Gedankenblitz.

    Problem:
    ich habe einen String, der x Elemente der List<List<string>> speichern muss.
    Bei zwei Elementen fange ich also an mir die Elemente [0][0] und [0][0] aus der Liste zu holen, und verarbeite sie.
    Entsprechen sie dem was ich suche, so wird das ganze abgebrochen, und ich mache mit was auch immer weiter.
    Ist dem nicht der Fall, so hole ich die nächsten beiden Elemente, [0][0] und [0][1] aus der Liste und treibe das Spiel ein weiteres mal.
    Wurden die Elemente [0][0] und [xEnde] [yEnde] erreicht, so holen wir uns als erstes Element nun [0][1] und fangen beim Zweiten Element wieder bei [0][0] an.
    Das ganze geht dann bis [xEnde] [yEnde] und [xEnde] [yEnde], sollte keiner der Vorhanden Strings meinen Suchkriterien Entsprechen.

    Wie gesagt, mit einer Festen Anzahl an zu suchenden Elementen komme ich klar, wenn ich jedoch X Elemente habe, komme ich auf keinen Grünen zweig.
    Dabei brauche ich JEDE mögliche Kombination, es kann keine durch Spiegelungen etc, ausgeschlossen werden.

    EaranMaleasi schrieb:

    die Elemente [0][0] und [0][0] aus der Liste zu holen


    Was meinst du damit? DIe sind doch identisch?

    Du hast ein 2D-Array (als List), kannst du mal einfach ein Beispiel bringen, was du willst?

    0 1 2 3
    4 5 6 7
    8 9 10 11

    Die Strings hast du jetzt, was willst du haben, und was ist jetzt X? X ist doch auch eine feste Anzahl? ??

    sonne75 schrieb:

    Was meinst du damit? DIe sind doch identisch?

    EaranMaleasi schrieb:

    Dabei brauche ich JEDE mögliche Kombination, es kann keine durch Spiegelungen etc, ausgeschlossen werden.

    Exakt, ich muss dieses Element [0][0] ein, zwei oder mehrmals aus der Liste holen, und in dem String direkt hintereinander speichern.

    sonne75 schrieb:

    X ist doch auch eine feste Anzahl

    Ich muss aus dieser 2D-Liste 1 bis X Strings herausholen und direkt hintereinander in einen String speichern. Dabei wird bei [0][0] angefangen, und zwar so oft, wie ich Elemente aus der Liste benötige. Entspricht dieser generierte String aus 1 bis X Elementen nicht meinen Vorstellungen, wird lediglich das letzte Element verändert. Dies passiert, bis ich mit dem letzten Element am Ende der Liste angekommen bin. Dann wird das vorletzte Element um eins erhöht und das Letzte steht wieder auf [0][0], wodurch es wieder von vorne losgeht.
    Also, ich habe die liste mit dem namen lstB, die deine Werte enthält.
    dazu habe ich einen string s, der drei Elemente aus der Liste nun Speichern möchte.

    Durchlauf 1:
    s= lstB[0][0] + lstB[0][0] + lstB[0][0]
    s enthält 000
    Durchlauf 2:
    s = lstB[0][0] + lstB[0][0] + lstB[0][1]
    s enthält 001
    Durchlauf 3:
    s = lstB[0][0] + lstB[0][0] + lstB[0][2]
    s enthält 002
    ....
    Durchlauf 5:
    s = lstB[0][0] + lstB[0][1] + lstB[0][0]
    s enthält 010
    Durchlauf 6:
    s = lstB[0][0] + lstB[0][1] + lstB[0][1]
    s enthält 011
    ...

    Habe auf deinen Tipp mit dne Permutationen hier das gefunden: Permutationen
    Ich sehe es mir mal genauestens an.