Es lástima, pero Delphi todavía no tienen estructuras de datos, incluso muy básicas, como conjuntos. La sugerencia de "Fabricio Araujo" tiene un uso muy limitado: debe conocer todas las cadenas posibles, de modo que es inútil cuando las lea desde algún lugar. También es imposible tener más de 256 elementos en ese "casi conjunto de cuerdas". Remy Lebeau sugirió usar TStringList para ese propósito, pero es absolutamente ineficiente cuando tienes grandes conjuntos. En las versiones modernas de Delphi es posible utilizar TDictionary para mantener conjunto desordenado de cualquier cosa, incluyendo cadenas:
procedure TForm6.FormCreate(Sender: TObject);
type
TEmpty = record end;
var
MySet: TDictionary<String, TEmpty>;
Dummy: TEmpty;
begin
MySet := TDictionary<String, TEmpty>.Create;
try
MySet.Add('Str1', Dummy);
MySet.Add('Str2', Dummy);
MySet.Add('Str3', Dummy);
if MySet.TryGetValue('Str2', Dummy) then
ShowMessage('Exists');;
finally
MySet.Free;
end;
end;
Es mayúsculas y minúsculas. Si necesita una implementación que no distinga entre mayúsculas y minúsculas, puede hacer que todas las cadenas estén en minúscula antes de poner/buscar y establecer en el conjunto (use la función AnsiLowerCase para eso).
Gracias, ¡¡¡Útil !! – Armin