如何检查数组中是否存在字符串?

时间:2022-04-13 20:17:38

I have this code:

我有这个代码:

var
  ExtString: string;
const
  Extensions : array[0..4] of string = ('.rar', '.zip', '.doc', '.jpg', '.gif');

if ExtString in Extensions then

On the last line, I get an error:

在最后一行,我收到一个错误:

[DCC Error] E2015 Operator ('then') not applicable to this operand type

[DCC错误] E2015运算符('then')不适用于此操作数类型

I think I can not do this, so how can I properly perform my task?

我想我不能这样做,所以我怎样才能正确执行我的任务?

2 个解决方案

#1


19  

As you have found you can't check for a String in an Array of String, using in.

正如您所发现的那样,无法使用in来检查字符串数组中的字符串。

You could use this function instead of the if statement.

您可以使用此函数而不是if语句。

function StrInArray(const Value : String;const ArrayOfString : Array of String) : Boolean;
var
 Loop : String;
begin
  for Loop in ArrayOfString do
  begin
    if Value = Loop then
    begin
       Exit(true);
    end;
  end;
  result := false;
end;

You can call it like this.

你可以这样称呼它。

if StrInArray(ExtString,Extensions) then

如果是StrInArray(ExtString,Extensions)那么

The StrUtils.pas has this already defined.

StrUtils.pas已经定义了这个。

function MatchStr(const AText: string; const AValues: array of string): Boolean; 

#2


8  

Initialise a TStringList instance from the constant array and use IndexOf().

从常量数组​​初始化TStringList实例并使用IndexOf()。

#1


19  

As you have found you can't check for a String in an Array of String, using in.

正如您所发现的那样,无法使用in来检查字符串数组中的字符串。

You could use this function instead of the if statement.

您可以使用此函数而不是if语句。

function StrInArray(const Value : String;const ArrayOfString : Array of String) : Boolean;
var
 Loop : String;
begin
  for Loop in ArrayOfString do
  begin
    if Value = Loop then
    begin
       Exit(true);
    end;
  end;
  result := false;
end;

You can call it like this.

你可以这样称呼它。

if StrInArray(ExtString,Extensions) then

如果是StrInArray(ExtString,Extensions)那么

The StrUtils.pas has this already defined.

StrUtils.pas已经定义了这个。

function MatchStr(const AText: string; const AValues: array of string): Boolean; 

#2


8  

Initialise a TStringList instance from the constant array and use IndexOf().

从常量数组​​初始化TStringList实例并使用IndexOf()。