Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ EnqueueRange() [2/2]

void System.Collections.Generic.PriorityQueue< TElement, TPriority >.EnqueueRange ( IEnumerable<(TElement Element, TPriority Priority)> items)
inline

Definition at line 285 of file PriorityQueue.cs.

286 {
287 if (items == null)
288 {
289 throw new ArgumentNullException("items");
290 }
291 int num = 0;
292 ICollection<(TElement, TPriority)> collection = items as ICollection<(TElement, TPriority)>;
293 if (collection != null && (num = collection.Count) > _nodes.Length - _size)
294 {
295 Grow(_size + num);
296 }
297 if (_size == 0)
298 {
299 if (collection != null)
300 {
301 collection.CopyTo(_nodes, 0);
302 _size = num;
303 }
304 else
305 {
306 int num2 = 0;
307 (TElement, TPriority)[] nodes = _nodes;
308 foreach (var (item, item2) in items)
309 {
310 if (nodes.Length == num2)
311 {
312 Grow(num2 + 1);
313 nodes = _nodes;
314 }
315 nodes[num2++] = (item, item2);
316 }
317 _size = num2;
318 }
319 _version++;
320 if (_size > 1)
321 {
322 Heapify();
323 }
324 return;
325 }
326 foreach (var (element, priority) in items)
327 {
328 Enqueue(element, priority);
329 }
330 }
void Enqueue(TElement element, TPriority priority)
TElement TPriority Priority[] _nodes

References System.Collections.Generic.PriorityQueue< TElement, TPriority >._nodes, System.Collections.Generic.PriorityQueue< TElement, TPriority >._size, System.Collections.Generic.PriorityQueue< TElement, TPriority >._version, System.collection, System.Collections.Generic.PriorityQueue< TElement, TPriority >.Enqueue(), System.Collections.Generic.PriorityQueue< TElement, TPriority >.Grow(), System.Collections.Generic.PriorityQueue< TElement, TPriority >.Heapify(), and System.item.