delphi – 最好的方法来找到一个字符串是否在一个列表(没有泛型)

前端之家收集整理的这篇文章主要介绍了delphi – 最好的方法来找到一个字符串是否在一个列表(没有泛型)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想做这样的事情:
Result = 'MyString' in [string1,string2,string3,string4];

这不能用于字符串,我不想这样做:

Result = (('MyString' = string1) or ('MyString' = string2));

另外我认为,创建一个StringList来做这只是太复杂。

有没有其他方法来实现这一点?

谢谢。

解决方法

你可以使用AnsiIndexText(const AnsiString AText,const数组的字符串AValues):integer或MatchStr(const AText:string; const AValues:string of string):Boolean;

就像是

Result := (AnsiIndexText('Hi',['Hello','Hi','Foo','Bar']) > -1);

要么

Result := MatchStr('Hi',['foo','Bar']);

AnsiIndexText returns the 0-offset
index of the first string it finds in
AValues that matches AText
case-insensitively. If the string
specified by AText does not have a
(possibly case-insensitive) match in
AValues,AnsiIndexText returns –1.
Comparisons are based on the current
system locale.

MatchStr determines if any of the
strings in the array AValues match the
string specified by AText using a case
sensitive comparison
. It returns true
if at least one of the strings in the
array match,or false if none of the
strings match.

注意AnsiIndexText不区分大小写,MatchStr是区分大小写,所以我想它取决于你的使用

编辑:2011-09-3:刚刚发现这个答案,并想到我会添加一个注释,在Delphi 2010中还有一个MatchText函数,它与MatchStr相同,但case insenstive。 – 拉里

猜你在找的Delphi相关文章