Вы можете обнаружить, что эти методы расширения делают ваш код более удобочитаемым:
public static bool None<TSource>(this IEnumerable<TSource> source)
{
return !source.Any();
}
public static bool None<TSource>(this IEnumerable<TSource> source,
Func<TSource, bool> predicate)
{
return !source.Any(predicate);
}
Теперь вместо исходного
if (!acceptedValues.Any(v => v == someValue))
{
// exception logic
}
вы можете сказать
if (acceptedValues.None(v => v == someValue))
{
// exception logic
}