Hallo Björn,
versuche es einmal mit diesem Ansatz:
Delphi-Quellcode:
uses
Generics.Collections;
type
TRecord<T> = record
ID: Integer;
Data: T;
constructor Init (const aID: Integer; const aData: T);
end;
TRecordList<T> = class (TList<TRecord<T>>)
procedure AddItem (const aID: Integer; const aData: T);
end;
constructor TRecord<T>.Init(const aID: Integer; const aData: T);
begin
ID := aID;
Data := aData;
end;
procedure TRecordList<T>.AddItem(const aID: Integer; const aData: T);
var
R: TRecord<T>;
begin
R.Init (aID, aData);
Add(R);
end;
// Anwendung
var
MyList: TRecordList<string>;
begin
MyList := TRecordList<string>.Create;
try
MyList.AddItem (42, 'Hallo Welt');
MyList.AddItem (0, 'EOF');
ShowMessage (MyList[0].Data);
finally
MyList.Free;
end;
end;
Oder habe ich etwas an deiner Problemstellung übersehen?
Falls die ID eine eindeutige Kennung des Records sein sollte, wäre vielleicht ein Blick auf
TDictionary<TKey,TValue> sinnvoll.
Gruß Hawkeye