Forum: Die Delphi-IDE
by Stevie,
12. Sep 2014
Häh? Hast du überhaupt ne leise Ahnung, wie ne foreach Loop in C# funktioniert?
Richtig, mit nem Enumerator.
Worin unterscheidet sich das von:
for item in items do
item.machirgendwas;
Außer, dass eine for in Schleife in Delphi bei einem Array (im Gegensatz zu C#, wo auch ein array IEnumerable implementiert) nicht über einen expliziten Enumerator läuft sondern vom Compiler direkt...
Forum: Die Delphi-IDE
by Stevie,
12. Sep 2014
Nunja, TObject.Equals wird beim IEqualityComparer benutzt. Bei TList<T>.IndexOf wird aber der beim Create übergebene (oder der default) IComparer benutzt. Der kann aber durchaus auf irgendwelche Eigenschaften eines Objekts gehen (weil er auch für die Sortierung benutzt wird. Wenn ich also nen naiven Comparer baue, der nach Nachnamen und Vorname sortiert, bekomm ich bei IndexOf den ersten Hans...
Forum: Die Delphi-IDE
by Stevie,
12. Sep 2014
Naja, für Pointer eine generische Liste zu benutzen ist auch ziemlich witzlos.
Forum: Die Delphi-IDE
by Stevie,
12. Sep 2014
Ich nehm mal an, dass du als T eine Klasse genommen hast. Da ist nämlich das Verhalten von TList und TList<T> ein bisschen unterschiedlich und daher auch zusätzlich zu dem IComparer Overhead langsamer: TList macht einfach nen stumpfen Pointervergleich. Der Comparer bei Objekten ruft TObject.Equals auf. Und das kann sehr wohl überschrieben sein, so dass man dort nich einfach Referenzen vergleichen...
Forum: Die Delphi-IDE
by Stevie,
11. Sep 2014
Wat? Nö, dann würden ja neue Einträge nicht hinten angehangen werden sondern alphabetisch eingeordnet.
Forum: Die Delphi-IDE
by Stevie,
11. Sep 2014
Fällt imo alles in die Kategorie "muss man sich keine Sorgen drum machen". Weitaus wichtiger ist, dass dein Code vernünftig ist. Gerade was Listen angeht, kann man sich derbst ins Bein schießen, was Performanceverschwendung angeht. Letztens erst wieder Code refactored, wo jemand 3mal ne Liste durchgeeiert ist, wo auch einmal gereicht hätte. Bumms, 200% Performancegewinn. Anderes Beispiel,...
Forum: Die Delphi-IDE
by Stevie,
11. Sep 2014
Nicht Anis, sondern Salbei...
Natürlich tu ich das. Denn genau das passiert, wenn du deine Software mit string in Delphi 2007 oder eher geschrieben hast, migrierst und dann irgendwelche Performance Tests laufen lässt, die Stringoperationen beinhalten.
Dass das Äpfel mit Birnen vergleichen ist, weiß ich, aber manche nicht. Deshalb erwähn ichs nochmal.
P.S. FPC is eh viel schneller! /sarcasm...