public KeyValuePair <TKey, TValue>[] ToArray()
        {
            lock (this._syncLock)
            {
                ConcurrentPriorityQueue <TKey, TValue> .MinBinaryHeap minBinaryHeap = new ConcurrentPriorityQueue <TKey, TValue> .MinBinaryHeap(this._minHeap);

                KeyValuePair <TKey, TValue>[] keyValuePairArray = new KeyValuePair <TKey, TValue> [this._minHeap.Count];
                for (int index = 0; index < keyValuePairArray.Length; ++index)
                {
                    keyValuePairArray[index] = minBinaryHeap.Remove();
                }
                return(keyValuePairArray);
            }
        }
 public MinBinaryHeap(
     ConcurrentPriorityQueue <TKey, TValue> .MinBinaryHeap heapToCopy)
 {
     this._items = new List <KeyValuePair <TKey, TValue> >((IEnumerable <KeyValuePair <TKey, TValue> >)heapToCopy.Items);
 }