Поиск соответствующего значения в TList Delphi7
У меня есть TList
который я заполняю динамически, из базы данных, он содержит идентификатор и имя.
Что мне нужно знать, это как искать определенное имя в этом TList
предоставив идентификатор без использования for
петля.
1 ответ
Решение
без использования
for
петля
К сожалению, это именно то, что вы должны использовать. 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;