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 reasona 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...