protected override bool MatchesSafely(IEnumerable <T> items, IDescription mismatchDescription) { Matching <T> matching = new Matching <T>(_matchers, mismatchDescription); var enumerable = items as List <T> ?? items.ToList(); if (enumerable.Any(item => !matching.Matches(item))) { return(false); } return(matching.IsFinished(enumerable)); }