在 TList Delphi7 中搜索对应的值

Searching for a Corresponding Value in a TList Delphi7

我有一个 TList,我从数据库动态填充它,它包含一个 ID 和名称。

我需要知道的是如何在不使用 for 循环的情况下通过提供 ID 在 TList 中搜索某个名称。

without using for loop

不幸的是,这正是您必须使用的。一个包含指针的 TList 只知道如何搜索指针,没有别的。要执行您想要的操作,您必须循环遍历手动取消引用指针的列表,以便比较它们的字段值。

例如:

type
  TDatabaseRecord = class
  public
    ID: Integer;
    Name: String;
  end;

function FindNameByID(ID: Integer): String;
var
  I: Integer;
begin
  Result := '';
  for I := 0 to MyList.Count-1 do
  begin
    if TDatabaseRecord(MyList[I]).ID = ID then
    begin
      Result := TDatabaseRecord(MyList[I]).Name;
      Exit;
    end;
  end;
end;