private static DelegateComparer <T> .CompareDelegate GetEqualBypass(DelegateComparer <T> .CompareDelegate comparer) { return((x, y) => { var result = comparer(x, y); return result != 0 ? result : Comparer <int> .Default.Compare(x.GetHashCode(), y.GetHashCode()); }); }
/// <summary> /// Constructs a new <see cref="OrderedList{T}"/> with the provided <paramref name="comparer"/>. /// </summary> /// <param name="comparer">A comparer delegate to compare the objects in the list.</param> public OrderedList(DelegateComparer <T> .CompareDelegate comparer) : base(new DelegateComparer <T>(GetEqualBypass(comparer))) { }