From 201e0878c763a9ecf3d46f0568bc965d985a6e27 Mon Sep 17 00:00:00 2001 From: Chris Cameron Date: Tue, 18 Jul 2017 12:46:27 -0400 Subject: [PATCH] Optimization in adding multiple items to an IcdHashSet --- ICD.Common.Utils/Collections/IcdHashSet.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ICD.Common.Utils/Collections/IcdHashSet.cs b/ICD.Common.Utils/Collections/IcdHashSet.cs index e1d9fa2..8561c70 100644 --- a/ICD.Common.Utils/Collections/IcdHashSet.cs +++ b/ICD.Common.Utils/Collections/IcdHashSet.cs @@ -192,8 +192,19 @@ namespace ICD.Common.Utils.Collections /// public void AddRange(IEnumerable items) { + if (items == null) + throw new ArgumentNullException("items"); + foreach (T item in items) - Add(item); + { + // ReSharper disable CompareNonConstrainedGenericWithNull + if (item == null) + // ReSharper restore CompareNonConstrainedGenericWithNull + throw new InvalidOperationException("item"); + + if (!m_Dict.ContainsKey(item)) + m_Dict[item] = null; + } } ///