I\'ve been running into situations where I feel I\'m lacking a LINQ extension method which effectivelly checks if there is no match of the specified predicate in a collection. T
You can write your own Extension Method
:
public static bool None(this IEnumerable<T> collection, Func<T, bool> predicate)
{
return collection.All(p=>predicate(p)==false);
}
Or on IQueryable<T>
as well
public static bool None(this IQueryable<T> collection, Expression<Func<TSource, bool>> predicate)
{
return collection.All(p=> predicate(p)==false);
}
Even shorter version
static class LinqExtensions
{
public static bool None<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate) => !source.Any(predicate);
}
None
is the same as !Any
, so you could define your own extension method as follows:
public static class EnumerableExtensions
{
public static bool None<TSource>(this IEnumerable<TSource> source,
Func<TSource, bool> predicate)
{
return !source.Any(predicate);
}
}