Ich möchte eine Funktion haben, die ein Wörterbuch der Zeichenfolge, Array der Variante nimmt. So kann es mit aufgerufen werden:Kann ich ein Wörterbuch mit dynamischem Array als Werttyp deklarieren?
searchDictionary := TDictionary<string, array of variant>;
searchDictionary.Add('KEY_NAME', ['X01%', '%D01']);
aValue := TDtoClass.Search(searchDictionary)
ich zur Zeit dies zu erreichen, bin von
searchDictionary := TDictionary<string, TList<variant>>.Create;
searchDictionary.Add('BIN_NAME', TSearch.Values(['X01%', '%D01']));
wo TSearch eine Klasse, die entlarvt:
class function TSearch.Values(const arguments: array of variant): TList<variant>;
var
list : TList<variant>;
item: variant;
begin
list := TList<variant>.Create;
for item in arguments do
begin
list.Add(item);
end;
Result := list;
end;
Was würde ich zu tun ist:
searchDictionary.Add('BIN_NAME', ['X01%', '%D01']);
anstelle von:
searchDictionary.Add('BIN_NAME', TSearch.Values(['X01%', '%D01']));
Jede Hilfe wird sehr geschätzt.
Was genau funktioniert nicht? Kompiliert es nicht (und an welcher Position)? – jpfollenius
.Add (Name: Zeichenfolge; a: Array von const)? – Marck
Eigentlich ist das ein dynamisches Array und kein offenes Array. Offene Arrays existieren nur als Prozedurparameter. Ich habe den Fragentitel aktualisiert. –