示例#1
0
        public static IEqualityComparer GetRandomizedEqualityComparer(object comparer)
        {
            Contract.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());
            }

            Contract.Assert(false, "Missing case in GetRandomizedEqualityComparer!");

            return(null);
        }
示例#2
0
        public static object GetEqualityComparerForSerialization(object comparer)
        {
            if (comparer == null)
            {
                return(null);
            }
            IWellKnownStringEqualityComparer wellKnownStringEqualityComparer = comparer as IWellKnownStringEqualityComparer;

            if (wellKnownStringEqualityComparer != null)
            {
                return(wellKnownStringEqualityComparer.GetEqualityComparerForSerialization());
            }
            return(comparer);
        }
示例#3
0
        public static IEqualityComparer GetRandomizedEqualityComparer(object comparer)
        {
            if (comparer == null)
            {
                return(new RandomizedObjectEqualityComparer());
            }
            if (comparer == EqualityComparer <string> .Default)
            {
                return(new RandomizedStringEqualityComparer());
            }
            IWellKnownStringEqualityComparer wellKnownStringEqualityComparer = comparer as IWellKnownStringEqualityComparer;

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