none
Elemente aus einer Collection nach Datum sortiert RRS feed

  • Frage

  • Ich habe eine Collection und möchte daraus die ältesten 10 Elemente bekommen. Wie stelle ich das am einfachsten ohne Schleife  an?

    Meine Collection werte sieht so aus:

       class Werte
       {
          public List<Werte> werte = new List<Werte>();
    
          public DateTime Datum = DateTime.MinValue;
          public float Wert = 0;
    
          public Werte() { }
          public Werte(DateTime datum, float wert) 
          {
             Datum = datum;
             Wert = wert;
          }
    
          List<Werte>  Last10()
          {
             List<Werte> list = new List<Werte>();
    
             // die ältesten 10 Werte ermitteln
    
             return list;
          }
       }
    

    Vielen Dank für Eure Tips.

    Andreas

    Sonntag, 21. Juli 2013 15:31

Antworten

  • Hallo Andreas,

    wie Björn schon schreibt, ein Fall für LINQ:

    var listDatum10 = list.OrderBy(w => w.Datum).Take(10).ToList();
    

    Gruß Elmar

    • Als Antwort markiert AndreasM85 Montag, 22. Juli 2013 20:06
    Sonntag, 21. Juli 2013 17:08
    Beantworter

Alle Antworten

  • Hi Andreas,

    das funktioniert am einfachsten mit Linq.

    Da kannst du OrderdBy auf die Liste anwenden und dann Take.

    MFG

    Björn

    Sonntag, 21. Juli 2013 16:07
  • Hallo Andreas,

    wie Björn schon schreibt, ein Fall für LINQ:

    var listDatum10 = list.OrderBy(w => w.Datum).Take(10).ToList();
    

    Gruß Elmar

    • Als Antwort markiert AndreasM85 Montag, 22. Juli 2013 20:06
    Sonntag, 21. Juli 2013 17:08
    Beantworter
  • Das hat geholfen. Vielen Dank für die Unterstützung.
    Montag, 22. Juli 2013 20:07