Einzelnen Beitrag anzeigen

DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#1

Funktion Needle und Array übergeben - aber generisch

  Alt 22. Jun 2018, 22:20
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.
  Mit Zitat antworten Zitat