public bool Equals(CacheableMultiReader obj)
        {
            // NB We need to cast down to obj to get the simple "=="
            if (obj == null) return false;

            return BusinessEquals(obj);
        }
        public bool Equals(CacheableMultiReader obj)
        {
            // NB We need to cast down to obj to get the simple "=="
            if (obj == null)
            {
                return(false);
            }

            return(BusinessEquals(obj));
        }
        private bool BusinessEquals(CacheableMultiReader other)
        {
            if (other == null) return false;

            int length = subReaders.Length;
            if (length != other.subReaders.Length) return false;
            for (int index = 0; index < length; index++)
                if (!subReaders[index].Equals(other.subReaders[index]))
                    return false;

            return true;
        }
        private bool BusinessEquals(CacheableMultiReader other)
        {
            if (other == null)
            {
                return(false);
            }

            int length = subReaders.Length;

            if (length != other.subReaders.Length)
            {
                return(false);
            }
            for (int index = 0; index < length; index++)
            {
                if (!subReaders[index].Equals(other.subReaders[index]))
                {
                    return(false);
                }
            }

            return(true);
        }