Esempio n. 1
0
        public static void LazilyAssertCount <T>(ref IEnumerable <T> sequence, int requiredCount)
        {
            //first try to assert immediately (non-lazily)
            var list = sequence as ICollection;

            if (list != null)
            {
                if (list.Count > requiredCount)
                {
                    CountAssertionEnumerator <T> .ThrowMinimumNotAttainedException(requiredCount, list.Count);
                }
                if (list.Count < requiredCount)
                {
                    CountAssertionEnumerator <T> .ThrowMaximumExceededException(requiredCount, list.Count);
                }
                return;
            }

            sequence = CountAssertionEnumerator <T> .Exactly(sequence, requiredCount).ToEnumerable(false).EnsureSingleEnumerationDEBUG();
        }