class helper = für Klassen
record helper = für Records, einfache Typen (Integer, String, ...) und Enums
und leider nichts für Arrays
Record Helper nicht für Arrays? Habe ich da wieder etwas, was mir um die Ohren fliegen könnte?
Delphi-Quellcode:
type
TFilterArray = TArray<String>;
TFilterArrayHelper = record helper for TFilterArray
Function FilterStartsWithText(const aValue: String): TFilterArray;
end;
{ TFilterArrayHelper }
function TFilterArrayHelper.FilterStartsWithText(const aValue: String): TFilterArray;
begin
Result := [];
for var a := low(Self) to high(Self) do
if StartsText(aValue, Self[a]) then
Result := Result + [Self[a]];
end;
var
lFilterArray: TFilterArray;
lStringArray: TArray<String>;
begin
lFilterArray := ['a1', 'a2', 'a3', 'b1', 'b2', 'b3'];
lStringArray := lFilterArray.FilterStartsWithText('b');
for var a := low(lStringArray) to high(lStringArray) do
WriteLn(lStringArray[a]);
Readln;
end.