public MultipleDictionary(bool allowDuplicateValues, IEqualityComparer <TKey> keyEqualityComparer, IEqualityComparer <TValue> valueEqualityComparer)
 {
     Debug.Assert(null != keyEqualityComparer, "keyEqualityComparer must not be null.");
     Debug.Assert(null != valueEqualityComparer, "valueEqualityComparer must not be null.");
     BinaryTree = new LeftLeaningRedBlackTree <TKey, TValue>(
         (left, right) => keyEqualityComparer.GetHashCode(left).CompareTo(keyEqualityComparer.GetHashCode(right)),
         (left, right) => valueEqualityComparer.GetHashCode(left).CompareTo(valueEqualityComparer.GetHashCode(right)));
 }
 public OrderedMultipleDictionary(bool allowDuplicateValues, Comparison <TKey> keyComparison, Comparison <TValue> valueComparison)
 {
     Debug.Assert(null != keyComparison, "keyComparison must not be null.");
     Debug.Assert(null != valueComparison, "valueComparison must not be null.");
     BinaryTree = new LeftLeaningRedBlackTree <TKey, TValue>(keyComparison, valueComparison);
 }