예제 #1
0
        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));
        }
예제 #2
0
파일: HashBag.cs 프로젝트: renemongeau/NLib
        /// <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);
        }