Announcement

Collapse
No announcement yet.

Sortieren nach Namen UND Punkte...

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

  • Sortieren nach Namen UND Punkte...

    Hallo Leute,

    ich habe zur Zeit ein kleines Problem. Ich programmiere eine Highscoreliste und bin dabei auf ein kleines "Hindernis" gestoßen.

    Ich habe für die Sortierung der jeweiligen Spieler eine liste genommen und benutze auch seine sort() Funktion. Das alles funktioniert zwar super aber es ist manchmal blöd, wenn zwei Spielernamen die gleichen Punkte erzielt haben aber trotzdem falsch sortiert werden.

    Beispiel:
    BBBB 1000
    AAAA 1000
    CCC 500

    In diesem Beispiel müsste AAAA vor BBBB sein, wegen seinen Namen.

    Wie könnte ich dieses Problem lösen?

    Ich wäre sehr dankbar, wenn jemand da eine Idee hätte.

    Gruß
    Azami

  • #2
    Hallo,

    mittels einer LINQ-Abfrage kannst du die Liste sortieren um das gewünschte Ergebnis zu erreichen.

    [highlight=c#]
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace ConsoleApplication1
    {
    class Program
    {
    static void Main(string[] args)
    {
    List<Spieler> spielerListe = new List<Spieler>
    {
    new Spieler{Name = "CCCC", Punkte = 500},
    new Spieler{Name = "BBBB", Punkte = 1000},
    new Spieler{Name = "AAAA", Punkte = 1000}
    };

    IEnumerable<Spieler> highScore =
    from s in spielerListe
    orderby s.Punkte descending, s.Name ascending
    select s;

    foreach (Spieler s in highScore)
    Console.WriteLine("Name:\t{0}\nPunkte:\t{1}\n", s.Name, s.Punkte);

    Console.ReadKey();
    }
    }

    public class Spieler
    {
    public string Name { get; set; }
    public int Punkte { get; set; }
    }
    }
    [/highlight]

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

    Comment


    • #3
      Vielen Dank für die schnelle Antwort. Wird es dann demnächst ausprobieren.

      Comment


      • #4
        Hallo Leute,

        irgendwie scheint dieser Linq abfrage bei mir nicht zu funktionieren. Gibt es dafür eine alternative Lösung?

        Comment


        • #5
          Hallo,

          LINQ setzt das Framework 3.5 voraus. Vermutlich läuft bei dir 2.0. Wenn du dieses updatest muss es gehen.

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

          Comment


          • #6
            Nun funzt es. Hab bloß einen kleinen Bug gehabt. Vielen Dank nochmal für die Hilfe

            Comment

            Working...
            X