arraylist mit mehreren feldern?



  • ich habe hier eine tabelle (datum, buchungstext, betrag). diese werte würde ich gern in eine arraylist schreiben und dann nach betrag sortieren. weiss jemand, wie das geht?

    danke im voraus!



  • ---rauseditiert war mist was hier stand-----



  • Firefighter schrieb:

    Jo wir wissen das.Helfen dir aber nicht da du keine Eigenintive zeigst.

    ick habe gerade meinen Positiven ... als erstes brauchst Du eine Klasse um die Daten zu sammeln

    public class TableEntry {
        // Property für Datum
        // Property für Buchungstext
        // Property für Betrag
        // passender Konstruktor
    }
    

    wenn Du einen wirklich guten Konstruktor entworfen hast, dann ist das einfügen recht simpel

    List<TableEntry> table = new List<TableEntry>();
    // ...
    table.Add(new TableEntry(/* Parameter */);
    

    anschließend kannst Du alles mit dem Delegaten System.Comparison erfolgreicht sortieren

    hand,mogel



  • Warum der delegate?
    Die Extension Methode .Where<T> ist doch viel intuitiver 😃



  • mogel schrieb:

    wenn Du einen wirklich guten Konstruktor entworfen hast, dann ist das einfügen recht simpel

    List<TableEntry>table = new List<TableEntry>();
    // ...
    table.Add(new TableEntry(/* Parameter */);
    

    das geht auch ohne ctor, und du hast ne schliessende klammer vergessen #gg

    var table = new List<TableEntry>();
    // ...
    table.Add(new TableEntry
    {
        Datum = DateTime.Now,
        Buchungstext = "Sexuelle Dienstleistungen",
        Betrag = 2563.64
    });
    

    @Firefighter
    was isn schneller ? das table.Sort oder Linq ?
    (einfach mal ausgehend von 250000 eintraegen)

    //typo



  • @ mr evil

    Puhh das kann ich auf Anhieb gar nicht sagen. Um die Datenanzufordern bestimmt LINQ aber zu suchen eventuell table.Sort.Ich weiß es nicht,hast du ne Zahl im Kopf?



  • ne - hab ich keine ahnung
    hab auch grad nicht wirklich lust das zu testen #gg

    //dazu edit - ich merk grad - redetest du ausschliesslich vom suchen oder auch vom sortieren per linq?



  • Hehe jetzt wo du es sagst. Ich hab das falsche gepostet.Er redet ja von Sortieren, da war ich etwas voreilig.Sorry mein ersten Post nicht beachten.

    Wenns ums Sortieren geht dann kann ich den anderen nur zustimmen, dann sind die genannten Methoden das was du brauchst.



  • Wenn Sort verwendet werden sollte TableEntry noch IComparable implementieren.



  • nicht wenn man ne statische methode uebergibt {o;

    table.Sort(ByBetrag);
    .
    .
    .
    private static int ByBetrag(TableEntry lhv, TableEntry rhv)
    {
        return lhv.Betrag.CompareTo(rhv.Betrag);
    }
    

    der vorteil dieser methode ist das man es leichter anpassen kann wonach sortiert werden soll - wenn das IComparable[<T>] implementiert wird ist es fest


Anmelden zum Antworten