Это позор, но в Delphi до сих пор нет даже самых базовых структур данных, таких как наборы.
Предложение «Fabricio Araujo» очень ограничено в использовании - вы должны знать все возможные строки, поэтому бесполезно, когда вы читаете их откуда-то. Также невозможно иметь более 256 элементов в таком «почти любом наборе строк». Реми Лебо предложил использовать TStringList для этой цели, но это абсолютно неэффективно, когда у вас большие наборы. В современных версиях Delphi можно использовать TDictionary для сохранения неупорядоченного набора чего-либо, включая строки:
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;
Он чувствителен к регистру. Если вам нужна реализация без учета регистра, вы можете сделать все строки в нижнем регистре перед положением / просмотром, а затем в set (для этого используйте функцию AnsiLowerCase).