我想做类似的事情,但由于无法分配给“Pair”,所以它无法编译。
var
MyDictionary: TDictionary<TGuid, TCustomRecord>;
Pair: TPair<TGuid, TCustomRecord>;
begin
// ... create and populate my dictionary ...
foreach Pair in MyDictionary do
begin
PairRef.Value.MyField := PairRef.Value.MyField + 1;
end;
end
明确一点,我知道如何用更多的代码完成这项任务,我正在寻找一些简洁易读的方法。
for CustomRecord in MyDictionary
(其中CustomRecord:TCustomRecord
)。 - Anya ShenanigansTObjectDictionary
代替,并在构造函数中传递[doOwnsValues]
参数;这将使得TObjectDictionary
在提取、删除或销毁字典时自动释放Values
(类似于TObjectList
的行为)。然后,您可以使用一个类而不是一个记录,就不会有这个问题了。 - Ken White