В SO есть вопрос о "возможных многократных перечислениях" , но этот вопрос более конкретен.
Пожалуйста, рассмотрите следующий метод, который принимает IEnumerable<string>
в качестве входных данных ивыполняет данный метод для каждого из его элементов:
public static bool SomeMethod(IEnumerable<string> enumerable)
{
if (enumerable.IsNullOrEmpty())
{
// throw exception.
}
else
{
return (enumerable.All(SomeBooleanMethod));
}
}
В приведенном выше коде IsNullOrEmpty
это просто метод расширения, который запускает
return (!ReferenceEquals(enumerable, null) || enumerable.Any());
Проблема в том, что ReSharper предупреждаетменя о "Возможных множественных перечислениях IEnumerable", и я действительно не знаю, может ли это быть на самом деле проблемой или нет.
Я понимаю значение предупреждения, но что вы действительно могли бы сделать в этой ситуации, если вам действительно нужно проверить и выбросить исключение в случае недействительности или пустоты?