/// <summary>
 /// Returns a hash code for the specified object.
 /// </summary>
 /// <param name="obj">The object for which to return a hash code. This object may be <c>null</c>.</param>
 /// <returns>A hash code for the specified object.</returns>
 protected override int DoGetHashCode(T obj)
 {
     unchecked
     {
         var ret = (int)2166136261;
         ret += ComparerHelpers.GetHashCodeFromComparer(Source, obj);
         ret *= 16777619;
         ret += ComparerHelpers.GetHashCodeFromComparer(SecondSource, obj);
         ret *= 16777619;
         return(ret);
     }
 }
 /// <summary>
 /// Returns a hash code for the specified object.
 /// </summary>
 /// <param name="obj">The object for which to return a hash code.</param>
 /// <returns>A hash code for the specified object.</returns>
 protected override int DoGetHashCode(IEnumerable <T> obj)
 {
     Contract.Assume(obj != null);
     unchecked
     {
         var ret = (int)2166136261;
         foreach (var item in obj)
         {
             ret += ComparerHelpers.GetHashCodeFromComparer(Source, item);
             ret *= 16777619;
         }
         return(ret);
     }
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Returns a hash code for the specified object.
 /// </summary>
 /// <param name="obj">The object for which to return a hash code. This object may be <c>null</c>.</param>
 /// <returns>A hash code for the specified object.</returns>
 protected override int DoGetHashCode(T obj)
 {
     return(ComparerHelpers.GetHashCodeFromComparer(this.Source, obj));
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="CompoundComparer&lt;T&gt;"/> class.
 /// </summary>
 /// <param name="source">The source comparer. If this is <c>null</c>, the default comparer is used.</param>
 /// <param name="secondSource">The second comparer. If this is <c>null</c>, the default comparer is used.</param>
 public CompoundComparer(IComparer <T> source, IComparer <T> secondSource)
     : base(source, true)
 {
     this.secondSource_ = ComparerHelpers.NormalizeDefault(secondSource);
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SourceComparerBase&lt;T, TSource&gt;"/> class.
 /// </summary>
 /// <param name="source">The source comparer. If this is <c>null</c>, the default comparer is used.</param>
 /// <param name="allowNulls">A value indicating whether <c>null</c> values are passed to <see cref="EqualityComparerBase{T}.DoGetHashCode"/> and <see cref="ComparerBase{T}.DoCompare"/>. If <c>false</c>, then <c>null</c> values are considered less than any non-<c>null</c> values and are not passed to <see cref="EqualityComparerBase{T}.DoGetHashCode"/> nor <see cref="ComparerBase{T}.DoCompare"/>.</param>
 protected SourceComparerBase(IComparer <TSource> source, bool allowNulls)
     : base(allowNulls)
 {
     this.source_ = ComparerHelpers.NormalizeDefault(source);
 }