PS: Die Konstante -1 ergibt meistens soeinen unschönen Assemblercode und der Vergleich darauf ist auch nicht so schön.
Wenn man anstatt mit dem "Fehler" zu vergleichen, auf die korrekten Werte prüft, sieht es gleich viel hübscher aus.
z.B. bezüglich
if IndexOf(...) = -1 then
oder
if not (IndexOf(...) = -1) then
:
if IndexOf(...) < 0 then
für "ist nicht drin" (OK, es sei denn man hat eine "sprechende" Konstante für den Fehlercode)
und
if IndexOf(...) >= 0 then
für "ist drin".
Eine positive Logik klingt auch meistens freundlicher und wenn man sich durchgehend vorwiegend auf eine Logik bezieht, ist der Code
IMHO oftmals auch schneller verständlicher, da man weniger überlegen muß.