program Project1;
{$Mode ObjFPC}
uses
Generics.Collections;
type
{ TMyType }
TMyType=class
Field1 : integer;
Field2 : integer;
procedure Write;
constructor Create(Value1, Value2 : integer);
end;
TMyList=specialize TObjectList<TMyType>;
var
List1, List2 : TMyList;
Item : TMyType;
{ TMyType }
procedure TMyType.Write;
begin
writeln(Field1,'-',Field2);
end;
constructor TMyType.Create(Value1, Value2: integer);
begin
Field1:=Value1;
Field2:=Value2;
end;
begin
List1:=TMyList.Create;
List1.Add(TMyType.Create(1,2));
List1.Add(TMyType.Create(3,4));
List2:=TMyList.Create(List1,False);
for Item in List2 do
Item.Write;
List1.Free;
List2.Free;
end.