Is there a Linq method to check whether a collection contains at least x items?
.Any()
is great because as soon as one item is found, it will be true and the pr
You can call Skip for the minimum number minus 1, and then check if there are any left:
public static bool AtLeast(this IEnumerable<T> source, int minCount)
{
return source.Skip(minCount - 1).Any();
}
Note that for large counts, if your source implements ICollection<T>
, this could be significantly slower than using Count
. So you might want:
public static bool AtLeast(this IEnumerable<T> source, int minCount)
{
var collection = source as ICollection<T>;
return collection == null
? source.Skip(minCount - 1).Any() : collection.Count >= minCount;
}
(You might want to check for the non-generic ICollection
too.)