Ich zerbreche mir gerade verzweifelt den Kopf.
Ich möchte gerne eine Funktion haben die prüft, ob Needle in einem gegebenem Array vorhanden ist. Wenn nicht, soll 0 zurückgegeben werden.
Damit das aber wiederverwendbar ist, am besten generisch.
Aber das funktioniert wohl nicht so wie ich will, weil die Typen nicht kompatibel sind und die Vergleichsoperatoren nicht angewendet werden können.
Am besten wäre es natürlich, wenn Needle auch noch generisch wäre. Könnt ihr mir da bitte helfen?
Mein bisheriger Ansatz
Delphi-Quellcode:
// e.g. const IntArray: Array[0 .. 2] of Integer = (0, 1, 2);
// i := FindInArray<Integer, Integer>(1, IntArray);
function FindInArray<T1, T2>(const Needle: T1; var Arr: TArray<T2>): Integer;
var
i: Integer;
begin
Result := 0;
for i := Low(Arr) to High(Arr) do
begin
if Needle = Arr[i] then
begin
Result := Needle;
Break;
end;
end;
end;
Ich brauche nicht den Index. ich überprüfe einfach nur, ob Needle in Array ist. Wenn nicht, soll 0 zurück kommen.