查找字符串是否在列表中的最佳方法(没有泛型)

2024-06-19

我想做这样的事情:

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(使用前将#替换为@)

查找字符串是否在列表中的最佳方法(没有泛型) 的相关文章

随机推荐