【发布时间】:2014-03-03 17:04:19
【问题描述】:
我有一个简单的 Where 子句,可以像这样过滤一个小的容器类:
var _cDetail = _cDetails.Where(c => Convert.ToString(c.ServiceProductId) == _cNumber).FirstOrDefault();
我在另一个项目中将它定义为一个简单的类,如下所示:
public class CDetail
{
public int ProductId { get; set; }
public int ServiceProductId { get; set; }
}
但我收到此错误:
Delegate 'System.Func<OtherClass.CDetail,int,bool>' does not take 1 arguments
我在 google 上经常看到这个,但我的情况似乎大不相同。
obj,int,bool 是从哪里来的?
【问题讨论】:
-
_cDetails的类型是什么 -
你是如何定义
_cDetail的? -
您提供的代码中不存在该错误。你能给出发生错误的实际行吗?
-
可以在 FirstOrDefault 语句中使用委托,而不是 where 子句。如果您尝试这样做,请查看是否出现相同的错误。
-
另外,与其将 int 转换为字符串,不如先将 cNumber 转换为 int。这样可以避免多次转换。