Вы знакомы с этим блоком:
Var
mySet: Set Of Char;
C: Char;
begin
mySet := ['a', 'b', 'c'];
If C In mySet Then ShowMessage('Exists');
end;
Есть ли любой способ объявить Set Of STRING
? или есть ли подобный код, который я могу использовать вместо этого? Важная часть этого блока If C In mySet Then ShowMessage('Exists');
Я хочу использовать что-то вроде этого о ряде строки.
Спасибо.
Вы можете воспользоваться этим.
type
TAnyEnum = (aeVal1, aeVal2, aeVal3);
TEnuns = set of TAnyEnum;
TAnyMessages: array [TAnyEnum] of String;
const
MyMessages: TAnyMessages = ('Exists', 'Something else', 'WTF!?');
var
MySet : TEnums;
begin
MySet = [aeVal1, aeVal2];
If aeVal1 in MySet then ShowMessage(MyMessages[aeVal1]);
end;
Наборы реализованы с использованием битовых массивов. Так что нет, у вас не может быть «набора строк». Вместо этого используйте TStringList, например:
var
mySet: TStringList;
S: String;
begin
S := ...;
mySet := TStringList.Create;
try
mySet.Add('a');
mySet.Add('b');
mySet.Add('c');
if mySet.IndexOf(S) <> -1 Then ShowMessage('Exists');
finally
mySet.Free;
end;
end;