Я хочу использовать перечислитель для универсальной коллекции с Delphi XE2. Мне интересно, кому принадлежит TEnumerator, возвращаемый функцией GetEnumerator (в документации я не нашел четкого ответа):
- Являюсь ли он владельцем и должен ли я освобождать его после использования?
- Или он принадлежит коллекции, и мне не нужно заботиться о его выпуске?
Код:
procedure Test;
var
myDictionary: TDictionary<String, String>;
myEnum: TDictionary<String, String>.TPairEnumerator;
begin
{ Create a dictionary }
myDictionary := TDictionary<String, String>.Create;
myDictionary.Add('Key1', 'Value 1');
myDictionary.Add('Key2', 'Value 2');
{ Use an enumerator }
myEnum := myDictionary.GetEnumerator;
// ... do something with the Enumerator ...
{ Release objects }
myEnum.Free; // ** Do I need to free the enumerator? **
myDictionary.Free;
end;