gpt4 book ai didi

delphi - 关于加入 TObjectlists

转载 作者:行者123 更新时间:2023-12-03 15:05:54 25 4
gpt4 key购买 nike

我认为我需要朝正确的方向插入:

我有两个相同数据类型的 Tobjectlist,我想将它们连接到一个新列表中,其中 list1 将被复制(未修改),然后是 list2(相反)

type
TMyListType = TobjectList<MyClass>

var
list1, list2, resList : TMyListtype

begin
FillListWithObjects(list1);
FillListWithOtherObjects(list2);

list2.reverse

//Now, I tried to use resList.Assign(list1, list2, laOr),
//but Tobjectlist has no Assign-Method. I would rather not want to
//iterate over all objects in my lists to fill the resList
end;

delphi有没有内置函数可以将两个Tobjectlist合并为一个?

最佳答案

使用TObjectList.AddRange()并设置OwnsObjectsFalse以避免重复释放 LRes 中的项目.

var
L1, L2, LRes: TObjectList<TPerson>;
Item: TPerson;

{...}

L1 := TObjectList<TPerson>.Create();
try
L2 := TObjectList<TPerson>.Create();
try

LRes := TObjectList<TPerson>.Create();
try
L1.Add(TPerson.Create('aa', 'AA'));
L1.Add(TPerson.Create('bb', 'BB'));

L2.Add(TPerson.Create('xx', 'XX'));
L2.Add(TPerson.Create('yy', 'YY'));

L2.Reverse;

LRes.OwnsObjects := False;
LRes.AddRange(L1);
LRes.AddRange(L2);

for Item in LRes do
begin
OutputWriteLine(Item.FirstName + ' ' + Item.LastName);
end;

finally
LRes.Free;
end;

finally
L2.Free;
end;

finally
L1.Free;
end;

关于delphi - 关于加入 TObjectlists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2847863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com