mirror of
https://github.com/ICDSystems/ICD.Common.Utils.git
synced 2026-02-15 12:45:01 +00:00
perf: Micro-optimizations
This commit is contained in:
@@ -246,15 +246,7 @@ namespace ICD.Common.Utils.Collections
|
||||
throw new ArgumentNullException("items");
|
||||
|
||||
foreach (T item in items)
|
||||
{
|
||||
// ReSharper disable CompareNonConstrainedGenericWithNull
|
||||
if (item == null)
|
||||
// ReSharper restore CompareNonConstrainedGenericWithNull
|
||||
throw new InvalidOperationException("item");
|
||||
|
||||
if (!m_Dict.ContainsKey(item))
|
||||
m_Dict[item] = null;
|
||||
}
|
||||
Add(item);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -73,10 +73,14 @@ namespace ICD.Common.Utils.Collections
|
||||
[PublicAPI]
|
||||
public void Enqueue(T item, int priority)
|
||||
{
|
||||
if (!m_PriorityToQueue.ContainsKey(priority))
|
||||
m_PriorityToQueue.Add(priority, new List<T>());
|
||||
List<T> queue;
|
||||
if (!m_PriorityToQueue.TryGetValue(priority, out queue))
|
||||
{
|
||||
queue = new List<T>();
|
||||
m_PriorityToQueue[priority] = queue;
|
||||
}
|
||||
|
||||
m_PriorityToQueue[priority].Add(item);
|
||||
queue.Add(item);
|
||||
m_Count++;
|
||||
}
|
||||
|
||||
@@ -89,10 +93,14 @@ namespace ICD.Common.Utils.Collections
|
||||
{
|
||||
const int priority = int.MinValue;
|
||||
|
||||
if (!m_PriorityToQueue.ContainsKey(priority))
|
||||
m_PriorityToQueue.Add(priority, new List<T>());
|
||||
List<T> queue;
|
||||
if (!m_PriorityToQueue.TryGetValue(priority, out queue))
|
||||
{
|
||||
queue = new List<T>();
|
||||
m_PriorityToQueue[priority] = queue;
|
||||
}
|
||||
|
||||
m_PriorityToQueue[priority].Insert(0, item);
|
||||
queue.Insert(0, item);
|
||||
m_Count++;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user