Даже проверки «IsNullOrEmpty» дают «Возможно множественное перечисление IEnumerable »предупреждений

Уже есть вопрос по SO о «возможных множественных перечислениях» , но этот вопрос более конкретный.

Пожалуйста, рассмотрите следующий метод, который принимает IEnumerable в качестве входных данных и выполняет данный метод для каждого из своих элементов:

public static bool SomeMethod(IEnumerable enumerable)
{
    if (enumerable.IsNullOrEmpty())
    {
        // throw exception.
    }
    else
    {
        return (enumerable.All(SomeBooleanMethod));
    }
}

В приведенном выше коде IsNullOrEmpty является просто метод расширения, который запускается

return (!ReferenceEquals(enumerable, null) || enumerable.Any());

Проблема в том, что ReSharper предупреждает меня о «возможных множественных перечислениях IEnumerable», и я действительно не знаю, может ли это быть проблемой или нет.

Я понимаю значение предупреждения, но что вы действительно можете сделать в этой ситуации, если вам действительно нужно проверить и выдать исключение в случае недействительности или пустоты?

20
задан Community 23 May 2017 в 12:20
поделиться