System.Collections.HashHelpers.GetRandomizedEqualityComparer C# (CSharp) Method

GetRandomizedEqualityComparer() public static method

public static GetRandomizedEqualityComparer ( object comparer ) : IEqualityComparer
comparer object
return IEqualityComparer
        public static IEqualityComparer GetRandomizedEqualityComparer(object comparer)
        {
            Debug.Assert(comparer == null || comparer == System.Collections.Generic.EqualityComparer<string>.Default || comparer is IWellKnownStringEqualityComparer);

            if (comparer == null)
            {
                return new System.Collections.Generic.RandomizedObjectEqualityComparer();
            }

            if (comparer == System.Collections.Generic.EqualityComparer<string>.Default)
            {
                return new System.Collections.Generic.RandomizedStringEqualityComparer();
            }

            IWellKnownStringEqualityComparer cmp = comparer as IWellKnownStringEqualityComparer;

            if (cmp != null)
            {
                return cmp.GetRandomizedEqualityComparer();
            }

            Debug.Fail("Missing case in GetRandomizedEqualityComparer!");

            return null;
        }