/// <summary>Copies the elements stored in the queue to a new array.</summary> /// <returns>A new array containing a snapshot of elements copied from the queue.</returns> public KeyValuePair <TKey, TValue>[] ToArray() { lock (_syncLock) { var clonedqueue = new MinQueue(Queue); var result = new KeyValuePair <TKey, TValue> [Queue.Count]; for (int i = 0; i < result.Length; i++) { result[i] = clonedqueue.Remove(); } return(result); } }
/// <summary>Initializes a queue as a copy of another queue instance.</summary> /// <param name="queue">The queue to copy.</param> /// <remarks>Key/Value values are not deep cloned.</remarks> public MinQueue(MinQueue queue) => Items = new List <KeyValuePair <TKey, TValue> >(queue.Items);