Der Holger will lieber nicht wissen was TStringList.Text macht.
DelimitedText und CommaText machen das Selbe, nur eben mit "Delimiter" statt LineBreak.
TStringList besteht aus vielen Strings, die werden zu einem großen String zusammen gebaut (das ist nicht wirklich "performant")
und das dann zusammen verglichen. (gut, das geht dann schnell, aber die zu vielen Speicheroperationen vorher hebt es bei Weitem nicht auf)
Also Besser ist es da, einfach nacheinander die Strings zu vergleichen und bei einem Unterschied abzubrechen. (wenn die Zeilenanzahl vorher schon nicht stimmt, dann gleich da raus, da es eh nicht gleich sein kann)
[edit] also praktisch das gezeigte TesteListen ... muß man nur noch entscheiden, ob TestString nötig ist, oder ob es nur "anders" verstanden wurde
Geht es aber um den Vergleich zweier TMemo (TMemoStrings) ... dort ist es intern schon "ein" String, Memo.Lines.Text ist optimiert und gibt direkt Memo.Text zurück, und Memo.Lines[i] muß jedesmal einen Teilstring aus dem Großen rauskopieren.
Muß es "schnell" gehen, dann darf man die Daten nicht verändern/kopieren, sondern muß die Originaldaten direkt vergleichen.