一千萬個為什麽

搜索

IEnumerable沒有Count方法

我有以下方法:

public bool IsValid
{
  get { return (GetRuleViolations().Count() == 0); }
}

public IEnumerable GetRuleViolations(){
  //code here
}

為什麽當我在上面的 .Count()時用紅色加下劃線?

我收到以下錯誤:

錯誤1'System.Collections.Generic.IEnumerable'   不包含的定義   '計數',沒有擴展方法   '伯爵'接受第一個論點   類型   'System.Collections.Generic.IEnumerable'   可以找到(你錯過了嗎?   使用指令或程序集   參考?)c:\ users \ a \ documents \ visual   工作室   2010 \ Projects \ NerdDinner \ NerdDinner \ Models \ Dinner.cs 15 47 NerdDinner

最佳答案

你添加:

using System.Linq;

在源代碼的頂部,並確保您有一個System.Core程序集的引用。

Count() is an extension method provided by the System.Linq.Enumerable static class for LINQ to Objects, and System.Linq.Queryable for LINQ to SQL and other out-of-process providers.

編輯:事實上,在這裏使用 Count()是相對低效的(至少在LINQ to Objects中)。您只想知道是否有任何元素,對吧?在這種情況下, Any()更適合:

public bool IsValid
{
  get { return !GetRuleViolations().Any(); }
}

轉載註明原文: IEnumerable沒有Count方法