dapole88 Geschrieben 10. März 2014 Teilen Geschrieben 10. März 2014 Hallo Liebe Gemeinde, ich werd hier gleich verrückt. Ich sitze schon seid längerem an einem Problem, was ich einfach nicht überwältigt bekomme. Ich möchte eine List sortieren. Diese List enthält Objekte meiner eingenen Klasse. Sortierung soll nach Zeit stattfinden. Hier die Klasse: public class Tap:IComparable<Tap> { public int zeit; public int p; public Tap() { } public Tap(int zeit, int p) { this.zeit = zeit; this.p= p; } int IComparable<Tap>.CompareTo(Tap other) { if (this.zeit > other.zeit) return 1; if (this.zeit < other.zeit) return -1; return 0; } } Das Sortieren funktioniert, aber ich habe nach dem Sortieren, immer ganz viele Objekte in der List. Ich kann mir das nicht erklären. Angenommen, es sollten 4 Objekte in meiner Liste sein, sinds nach dem sortieren weit über 10. ( Also dubletten ohne Ende) Ich weiß nicht warum. Sortieren tuhe ich mit tap_list.Sort(); Umgesetzt habe ich es nach diesem Beispiel: Sorting Lists using IComparable and IComparer Interface in .NET - CodeProject Also mir fällt nichts mehr ein. Wenn das nicht geht, muss ich mir morgen, irgendwie anders weiter helfen. Ich finde einfach nicht den Fehler, langsam habe ich das Gefühl, dass es vielleicht am Compact Framework liegt ?!? Ich meine, das ist doch das einfachste, was man eingetlich machen kann Ich bedankt mich im Vorraus und wünsche euch allen ein netten und angenehmen Abend. Grüße dapole88 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
realgun Geschrieben 10. März 2014 Teilen Geschrieben 10. März 2014 Zeig doch mal wie Du die Liste füllst und den Aufruf zum sortieren. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dapole88 Geschrieben 11. März 2014 Autor Teilen Geschrieben 11. März 2014 Guten Morgen, also gefüllt wird es an dieser Stelle: (in der list_p sind zudem Zeitpunkt keine dubletten vorhanden) foreach (Point pt in list_p) { double se = Convert.ToDouble(pt.X.ToString()) / xfaktor; double pu = Convert.ToDouble((panel_p.Height - Convert.ToDouble(pt.Y.ToString())) * yfaktor); int s = (int)se; int p = (int)pu; tap_list.Add(new Tap(s,p)); x++; } tap_list.Sort(); Mehr passiert dort eingetlich auch nicht. Sollte mir noch irgendwas auffallen, werd ich es natürlich posten. Grüße dapole88 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gooose Geschrieben 11. März 2014 Teilen Geschrieben 11. März 2014 tap_list wird beim jeden Durchlauf des Codeschnipsels mit der Anzahl der Elemente von list_p erhöht. Vielleicht musst du list_p resetten. Wie häufig wird der Code ausgeführt? Ein gut gesetzter Breakpoint kann hier sicherlich auch helfen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dapole88 Geschrieben 11. März 2014 Autor Teilen Geschrieben 11. März 2014 Der Moment: Wenn man den Wald vor lauter Bäumen nicht mehr sieht. Hab ich vorhin auch gemerkt. Bedanke trotzdem mich. die Liste wurde einfach nicht geleert. Das ich das nicht gesehen habe. Unfassbar! Wünsche netten Nachmittag, Grüße dapole88 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.