我有以下方法:
public bool IsValid { get { return (GetRuleViolations().Count() == 0); } } public IEnumerable<RuleViolation> GetRuleViolations(){ //code here }
为什么当我在.Count()上面执行此操作时,它用红色下划线标出?
.Count()
我收到以下错误:
错误1’System.Collections.Generic.IEnumerable’不包含’Count’的定义,并且找不到扩展方法’Count’接受类型为’System.Collections.Generic.IEnumerable’的第一个参数(您是否缺少使用指令还是程序集引用?)c:\ users \ a \ documents \ visual studio 2010 \ Projects \ NerdDinner \ NerdDinner \ Models \ Dinner.cs 15 47 NerdDinner
您添加:
using System.Linq;
在源代码的顶部,并确保您具有对System.Core程序集的引用。
Count()是System.Linq.Enumerable静态类为LINQ to Objects,System.Linq.QueryableLINQ to SQL和其他进程外提供程序提供的扩展方法。
Count()
System.Linq.Enumerable
System.Linq.Queryable
编辑:实际上,使用Count()此处效率相对较低(至少在LINQ to Objects中)。您只想知道是否有 任何 元素,对吗?在这种情况下,Any()更合适:
Any()
public bool IsValid { get { return !GetRuleViolations().Any(); } }