Announcement

Collapse
No announcement yet.

Enumeration in Schleife durchlaufen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Enumeration in Schleife durchlaufen

    Hallo,

    Ich habe 2 Enumerationen, die sollen in 2 Schleifen gegeneinander durchlaufen um daraus verschiedene Variationen zu erhalten.

    Wie mach ich das?

    Eine Enumeration hat 7 Member, soll aber erst ab dem 3ten durchlaufen werden.

    Code:
    foreach (Globals.SpeakerPosition SpkPos in Globals.SpeakerPosition)
                    {
                        foreach(Globals.SpeakerState SpkState in Globals.SpeakerState)
                        {
    
                        }
                    }
    Hier kommt die Fehlermeldung nach "in" :

    Fehler 3 "Protokollstapel.Globals.SpeakerPosition" ist "Typ" und im angegebenen Kontext nicht gültig.

  • #2
    Hallo,

    schau dir mal die Enum.GetValues-Methode an.


    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Danke!

      Das war der richtige Hinweis.

      Code:
      foreach (int posVL in Enum.GetValues(typeof(Globals.SpeakerState)))
                      {
                          foreach (int posVR in Enum.GetValues(typeof(Globals.SpeakerState)))
                          {
                              foreach (int posHL in Enum.GetValues(typeof(Globals.SpeakerState)))
                              {
                                  foreach (int posHR in Enum.GetValues(typeof(Globals.SpeakerState)))
                                  {
      In diesem Schleifenkonstrukt möchte ich jetzt das jede Enumeration erst ab dem 3.Element durchlaufen wird..

      Comment


      • #4
        verschiedene Variationen zu erhalten.
        Wenn ich das richtig interpretiere dann such nach Algorithmen für Permutation.


        mfG Gü
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment


        • #5
          Das ist eine Variation/Kombination mit Zurücklegen.Wie bei einem Zahlenschloss..

          Wie kann ich aber erst ab dem 3ten enum-Member jeweils durchlaufen?

          Comment


          • #6
            Wenn du Linq verwenden kannst nimm Skip um eine bestimmte Anzahl auszulassen.

            Sonst wäre es sogar effizienter for-Schleifen zu verwenden. Da kann der Index direkt angegeben werden.

            mfG Gü
            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

            Comment


            • #7
              Code:
              //TEMPORÄR
                                  if ((posVL == 0) || (posVL == 1) || (posVL == 2))
                                  {
                                      continue;   //nächste runde
                                  }
                                  //
              Ich habe es daweile so gelöst. Das kommt nach jedem Schleifenkopf vor.

              Danke aber für die anderen Hinweise.

              Comment


              • #8
                Bitte nicht, nimm eine for-Schleife.


                mfG Gü
                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                Comment

                Working...
                X