c# - list.remove problem



  • Hallo zusammen, hab ein ziemlich blödes Problem.

    Ich komm gleich zur Sache: Folgender Code

    public void remove(payment a)
        {
            list.Remove(a);
    
            StreamWriter writer = new StreamWriter(sourcefile);
            foreach (payment item in list)
            {
                writer.WriteLine(item.tostring(true));
            }
            writer.Close();
        }
    

    list ist eine list<payment>.
    payment hat die member:
    double Eur
    string reason

    a wird in einer anderen Methode zusammengebastelt und komplett übergeben.

    Remove löscht laut Hilfe das erste Vorkommen des übergebenen Elements.
    ich hab auf Groß- und Kleinschreibung bi reason geachtet, a und ein Element von list sind identisch, aber es wird nicht gelöscht.

    Hab ich bei Remove was falsch verstanden?

    danke für die Hilfe schonmal!



  • msdn schrieb:

    Diese Methode führt die Gleichheitsprüfung mit dem Standardgleichheitsvergleich EqualityComparer<T>.Default für T durch, den Typ der Werte in der Liste.

    ...implementiert deine payment-Klasse den EqualityComparer<payment> ?
    Ansonsten wird glaube ich nach Referenz verglichen und nicht nach dem was .ToString() liefert...


Anmelden zum Antworten