public void Test2() { EqualityComparison <int> ec = (i1, i2) => i1 == i2; var t = ec.ToEqualityComparer(); Assert.True(t.Equals(1, 1)); Assert.Equal(1, t.GetHashCode(1)); }
/// <summary> /// Initializes a new instance of the <see cref="HashBag{T}"/> class. /// </summary> /// <param name="collection">The collection.</param> /// <param name="comparison">The comparer. If null <paramref name="comparer"/> will be use.</param> /// <param name="comparer">The comparer. If null <paramref name="comparison"/> will be use.</param> /// <exception cref="ArgumentNullException"><paramref name="comparer"/> and <paramref name="comparison"/> are null.</exception> protected HashBag(IEnumerable <T> collection, EqualityComparison <T> comparison, IEqualityComparer <T> comparer) { Check.Current.Requires <ArgumentNullException>(comparer != null || comparison != null, CollectionResource.Initialize_ArgumentNullException_ComparerAndComparison); this.equalityComparer = comparison ?? comparer.Equals; this.Model = new Dictionary <T, int>(comparer ?? comparison.ToEqualityComparer()); this.AddRange(collection); }