diff --git a/CHANGELOG.md b/CHANGELOG.md index 3303424..e389bc3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] +### Added + - Enum Extension "SetFlags", takes a bool to set or unset the given flags + - BiDictionay - Added constructors with TKey and TValue comparers + ## [15.0.0] - 2021-05-14 ### Added - Ported CsvReader for CF 3.5 compatibility from: https://github.com/tspence/csharp-csv-reader diff --git a/ICD.Common.Utils/Collections/BiDictionary.cs b/ICD.Common.Utils/Collections/BiDictionary.cs index a5500dc..7def17c 100644 --- a/ICD.Common.Utils/Collections/BiDictionary.cs +++ b/ICD.Common.Utils/Collections/BiDictionary.cs @@ -38,10 +38,36 @@ namespace ICD.Common.Utils.Collections /// /// Constructor. /// - public BiDictionary() + public BiDictionary() : + this(EqualityComparer.Default, EqualityComparer.Default) { - m_KeyToValue = new Dictionary(); - m_ValueToKey = new Dictionary(); + } + + /// + /// Constructor + /// + /// + /// + public BiDictionary(IEqualityComparer keyComparer, IEqualityComparer valueComparer) + { + m_KeyToValue = new Dictionary(keyComparer); + m_ValueToKey = new Dictionary(valueComparer); + } + + /// + /// Constructor. + /// + /// + /// + /// + public BiDictionary([NotNull] Dictionary dict, IEqualityComparer keyComparer, IEqualityComparer valueComparer) + : this(keyComparer, valueComparer) + { + if (dict == null) + throw new ArgumentNullException("dict"); + + foreach (KeyValuePair kvp in dict) + Add(kvp.Key, kvp.Value); } /// @@ -49,13 +75,8 @@ namespace ICD.Common.Utils.Collections /// /// public BiDictionary([NotNull] Dictionary dict) - : this() + : this(dict, EqualityComparer.Default, EqualityComparer.Default) { - if (dict == null) - throw new ArgumentNullException("dict"); - - foreach (KeyValuePair kvp in dict) - Add(kvp.Key, kvp.Value); } #region Methods