ahe*_*ang 76 c# asp.net enumerable
我有以下方法:
public bool IsValid
{
get { return (GetRuleViolations().Count() == 0); }
}
public IEnumerable<RuleViolation> GetRuleViolations(){
//code here
}
Run Code Online (Sandbox Code Playgroud)
为什么当我在.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
Jon*_*eet 151
你添加:
using System.Linq;
Run Code Online (Sandbox Code Playgroud)
在源代码的顶部,并确保您有一个System.Core程序集的引用.
Count()
是System.Linq.Enumerable
LINQ to Objects 的静态类,以及System.Linq.Queryable
LINQ to SQL和其他进程外提供程序提供的扩展方法.
编辑:事实上,Count()
在这里使用是相对低效的(至少在LINQ to Objects中).所有你想知道的是否有任何元素,对吧?在这种情况下,Any()
更适合:
public bool IsValid
{
get { return !GetRuleViolations().Any(); }
}
Run Code Online (Sandbox Code Playgroud)
Any()
或Count()
Linq 中的方法仅适用于泛型类型。
IEnumerable<T>
Run Code Online (Sandbox Code Playgroud)
如果您有一个IEnumerable
没有类型的简单,请尝试使用
IEnumerable<object>
Run Code Online (Sandbox Code Playgroud)
反而。
归档时间: |
|
查看次数: |
51320 次 |
最近记录: |