perf: Micro-optimizations

This commit is contained in:
Chris Cameron
2018-07-20 16:41:44 -04:00
parent 6fb1e53776
commit 74c59bd7f3
5 changed files with 46 additions and 41 deletions

View File

@@ -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>

View File

@@ -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++;
}