LINQ: Ничего против Все Не

Часто я хочу проверить, совпадает ли указанное значение с одним из значений в списке (например, при проверке):

if (!acceptedValues.Any(v => v == someValue))
{
    // exception logic
}

Недавно я заметил, что ReSharper просит меня упростить эти запросы to:

if (acceptedValues.All(v => v != someValue))
{
    // exception logic
}

Очевидно, это логически идентично, возможно, немного более читаемо (если вы много занимались математикой), мой вопрос: приводит ли это к снижению производительности?

Похоже, что должен (т.е. .Any () звучит так, как будто это короткое замыкание, тогда как .All () звучит так, как будто это не так), но мне нечего доказывать. Есть ли у кого-нибудь более глубокие знания относительно того, разрешат ли запросы то же самое, или же ReSharper вводит меня в заблуждение?

260
задан Jon Hanna 11 May 2015 в 10:09
поделиться