Description |
A new Queue is created with the same number of elements, and entries as the current Queue.
When the current queue holds reference (non primitive) data types, the cloned queue element values still refer to the same objects that current queue elements refer to. This is what is referred to as a shallow copy. A deep copy would create new versions of the referred objects.
|
| Notes | You are obliged to cast the resultant Object to a Queue before assignment to a Queue variable.
|
|
Microsoft MSDN Links |
System.Collections
System.Collections.Queue
|
|
|
A simple example |
program Project1;
{$APPTYPE CONSOLE}
uses
System.Collections;
var
Source, Target : System.Collections.Queue;
Enumerator : IEnumerator;
begin
// Create our queues
Source := Queue.Create;
Target := Queue.Create;
// Add entries to the source queue
Source.EnQueue('First');
Source.EnQueue('Second');
Source.Enqueue('Third');
// Display the queue
Console.WriteLine('Source queue :');
Console.WriteLine;
Enumerator := Source.GetEnumerator;
while Enumerator.MoveNext do
Console.WriteLine(Enumerator.Current.ToString);
// Clone the queue!
Target := Queue(Source.Clone);
// Display the target
Console.WriteLine;
Console.WriteLine('Cloned queue :');
Console.WriteLine;
Enumerator := Target.GetEnumerator;
while Enumerator.MoveNext do
Console.WriteLine(Enumerator.Current.ToString);
Console.Readline;
end.
| Show full unit code | Source queue :
First
Second
Third
Cloned queue :
First
Second
Third
|
|
|
|