LINQ运算符'=='不能应用于'方法组'和'int'类型的操作数

时间:2012-04-17 21:48:00

标签: linq

我有以下内容:

    var lst = db.usp_GetLst(ID,Name, Type);

    if (lst.Count == 0)
    {

    }

我在lst.Count == 0下得到了一个简单的谎言,它说:

运算符'=='不能应用于'方法组'和'int'

类型的操作数

1 个答案:

答案 0 :(得分:53)

Enumerable.Count是一种扩展方法,而不是属性。这意味着usp_GetLst可能会返回IEnumerable<T>(或某些等价物),而不是您期望的IList<T>ICollection<T>的衍生物。

// Notice we use lst.Count() instead of lst.Count
if (lst.Count() == 0)
{

}

// However lst.Count() may walk the entire enumeration, depending on its
// implementation. Instead favor Any() when testing for the presence
// or absence of members in some enumeration.
if (!lst.Any())
{

}