我有以下方法:
public bool IsValid
{
get { return (GetRuleViolations().Count() == 0); }
}
public IEnumerable<RuleViolation> GetRuleViolations(){
//code here
}
为什么当我这样做时.Count()
上面有红色下划线吗?
我收到以下错误:
错误 1“System.Collections.Generic.IEnumerable”
不包含以下定义
“计数”并且没有扩展方法
'Count' 接受第一个参数
类型
'System.Collections.Generic.IEnumerable'
可以找到(您是否缺少
using 指令或程序集
参考?)c:\users\a\documents\visual
工作室
2010\项目\NerdDinner\NerdDinner\模型\Dinner.cs 15 47 NerdDinner
You add:
using System.Linq;
在源代码的顶部,并确保您有对 System.Core 程序集的引用。
Count()是由提供的扩展方法System.Linq.EnumerableLINQ to Objects 的静态类,以及System.Linq.Queryable适用于 LINQ to SQL 和其他进程外提供程序。
编辑:事实上,使用Count()
这里效率相对较低(至少在 LINQ to Objects 中)。你想知道的只是是否有any元素与否,对吗?在这种情况下,Any()
是一个更好的选择:
public bool IsValid
{
get { return !GetRuleViolations().Any(); }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)