【问题标题】:Delegate does not take 1 arguments代表不接受 1 个参数
【发布时间】: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。这样可以避免多次转换。

标签: .net linq c#-4.0


【解决方案1】:

Visual Studio 找不到该对象的类型 (CDetail) 的声明位置。

与其说“CDetail 未在此上下文中声明”之类的话,不如说是让我大吃一惊。

我会保留这个问题,以防其他人遇到这个问题。

感谢大家的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 2013-03-26
    • 2013-11-19
    • 1970-01-01
    • 2017-12-29
    • 2013-04-22
    相关资源
    最近更新 更多