在 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;
我有一个 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;