我想做这样的事情:
Result = 'MyString' in [string1, string2, string3, string4];
这不能与字符串一起使用,我不想做这样的事情:
Result = (('MyString' = string1) or ('MyString' = string2));
另外,我认为创建 StringList 来完成此操作太复杂了。
还有其他方法可以实现这一目标吗?
Thanks.
你可以使用AnsiIndexText(const AnsiString AText, const array of string AValues):integer
or MatchStr(const AText: string; const AValues: array of string): Boolean;
(均来自StrUtils
unit)
就像是:
Result := (AnsiIndexText('Hi',['Hello','Hi','Foo','Bar']) > -1);
or
Result := MatchStr('Hi', ['foo', 'Bar']);
AnsiIndexText 返回 0 偏移量
它找到的第一个字符串的索引
与 AText 匹配的 AValues不区分大小写。如果字符串
AText 指定的没有
(可能不区分大小写)匹配
AValues、AnsiIndexText 返回 –1。
比较基于当前
系统区域设置。
MatchStr 确定是否有任何
数组中的字符串值与
由 AText 使用 a 指定的字符串案件
敏感比较。它返回 true
如果至少有一个字符串
数组匹配,如果没有则为 false
字符串匹配。
Note AnsiIndexText
不区分大小写并且MatchStr
区分大小写,所以我想这取决于你的用途
编辑:2011-09-3:刚刚找到这个答案,我想我会添加一个注释,在 Delphi 2010 中还有一个MatchText
函数与以下相同MatchStr
但不区分大小写。 ——拉里
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)