public static int Compare <T>(IEnumerable <T> source, int sourceIndex, IEnumerable <T> destination, int destinationIndex, int length)
        {
            var compare = Comparer <T> .Default;

            return(CollectionUtilities.Compare(source, sourceIndex, destination, destinationIndex, length, compare));
        }
        public static bool Equals <T>(IEnumerable <T> source, int sourceIndex, IEnumerable <T> destination, int destinationIndex, int length)
        {
            var equalityComparer = EqualityComparer <T> .Default;

            return(CollectionUtilities.Equals(source, sourceIndex, destination, destinationIndex, length, equalityComparer));
        }
        public static int Compare <T>(IEnumerable <T> source, IEnumerable <T> destination)
        {
            var compare = Comparer <T> .Default;

            return(CollectionUtilities.Compare(source, destination, compare));
        }
        public static bool Equals <T>(IEnumerable <T> source, IEnumerable <T> destination)
        {
            var equalityComparer = EqualityComparer <T> .Default;

            return(CollectionUtilities.Equals(source, destination, equalityComparer));
        }