Ejemplo n.º 1
0
        public bool IsEquals(object?x, object?y)
        {
            for (var i = 0; i < propertyAccessors.Length; i++)
            {
                var property = propertyAccessors[i];

                var lhs = property.Get(x !);
                var rhs = property.Get(y !);

                if (!valueComparer.IsEquals(lhs, rhs))
                {
                    return(false);
                }
            }

            return(true);
        }
Ejemplo n.º 2
0
        public bool IsEquals(object?x, object?y)
        {
            var lhs = (IEnumerable)x !;
            var rhs = (IEnumerable)y !;

            if (sizeProperty != null)
            {
                var sizeLhs = sizeProperty.Get(lhs);
                var sizeRhs = sizeProperty.Get(rhs);

                if (!Equals(sizeLhs, sizeRhs))
                {
                    return(false);
                }
            }

            var enumeratorLhs = lhs.GetEnumerator();
            var enumeratorRhs = rhs.GetEnumerator();

            while (true)
            {
                var movedLhs = enumeratorLhs.MoveNext();
                var movedRhs = enumeratorRhs.MoveNext();

                if (movedRhs != movedLhs)
                {
                    return(false);
                }

                if (movedRhs)
                {
                    if (!itemComparer.IsEquals(enumeratorLhs.Current, enumeratorRhs.Current))
                    {
                        return(false);
                    }
                }
                else
                {
                    break;
                }
            }

            return(true);
        }
Ejemplo n.º 3
0
        public bool IsEquals(object?x, object?y)
        {
            var lhs = (T[])x !;
            var rhs = (T[])y !;

            if (lhs.Length != rhs.Length)
            {
                return(false);
            }

            for (var i = 0; i < lhs.Length; i++)
            {
                if (!itemComparer.IsEquals(lhs[i], rhs[i]))
                {
                    return(false);
                }
            }

            return(true);
        }
Ejemplo n.º 4
0
 public bool Equals(T x, T y)
 {
     return(comparer.IsEquals(x, y));
 }
Ejemplo n.º 5
0
 public bool Equals([AllowNull] T x, [AllowNull] T y)
 {
     return(comparer.IsEquals(x, y));
 }