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
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.Enumerablestatic class for LINQ to Objects, andSystem.Linq.Queryablefor 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: