I have the following method:
public bool IsValid
{
get { return (GetRuleViolations().Count() == 0); }
}
public IEnumerable<RuleViolation> GetRuleViolations(){
//code here
}
Why is it that when I do .Count()
above it is underlined in red?
I got the following error:
Error 1 'System.Collections.Generic.IEnumerable'
does not contain a definition for
'Count' and no extension method
'Count' accepting a first argument of
type
'System.Collections.Generic.IEnumerable'
could be found (are you missing a
using directive or an assembly
reference?) c:\users\a\documents\visual
studio
2010\Projects\NerdDinner\NerdDinner\Models\Dinner.cs 15 47 NerdDinner
Best Answer
You add:
at the top of your source and make sure you've got a reference to the System.Core assembly.
Count()
is an extension method provided by theSystem.Linq.Enumerable
static class for LINQ to Objects, andSystem.Linq.Queryable
for LINQ to SQL and other out-of-process providers.EDIT: In fact, using
Count()
here is relatively inefficient (at least in LINQ to Objects). All you want to know is whether there are any elements or not, right? In that case,Any()
is a better fit: