无法将方法组“FirstOrDefault”转换为非委托类型
Posted
技术标签:
【中文标题】无法将方法组“FirstOrDefault”转换为非委托类型【英文标题】:Cannot convert method group 'FirstOrDefault' to non-delegate type 【发布时间】:2015-12-24 06:04:09 【问题描述】:我正在检索一个列表并需要获取特定记录。我尝试过几种不同的方法,但每种方法都会产生错误。我使用以下代码收到上述错误:
List<DashboardModel> dashboardData = CompanyClient.GetContractorRankingByMajorIDAndContractorID(majorId, contractorId);
DashboardModel SSQScore = new DashboardModel();
SSQScore = dashboardData.Where(x=>x.ModuleInstanceID == 1).FirstOrDefault;
List 由方法 (GetContractor...) 返回。
非常感谢任何帮助!
【问题讨论】:
FirstOrDefault();
。你忘了括号
【参考方案1】:
这个
SSQScore = dashboardData.Where(x=>x.ModuleInstanceID == 1).FirstOrDefault;
应该这样写
SSQScore = dashboardData.FirstOrDefault(x=>x.ModuleInstanceID == 1);
或者你可以通过在FirstOrDefault
之后使用()
来纠正你的陈述,
SSQScore = dashboardData.Where(x=>x.ModuleInstanceID == 1).FirstOrDefault();
【讨论】:
【参考方案2】:SSQScore = dashboardData.Where(x => x.ModuleInstanceID == 1).FirstOrDefault;
您错过了括号,它告诉编译器“使用此方法”,而不是调用该方法。改成
SSQScore = dashboardData.Where(x => x.ModuleInstanceID == 1).FirstOrDefault();
或者,你不需要做Where(...).FirstOrDefault()
,后者可以带一个谓词表达式。这是等价的:
SSQScore = dashboardData.FirstOrDefault(x => x.ModuleInstanceID == 1);
【讨论】:
@M.kazemAkhgary,可能,我想我们是同时写的;)。这太明显了:) 你们两个太棒了!谢谢您的帮助。我永远也想不通缺少的 ()。以上是关于无法将方法组“FirstOrDefault”转换为非委托类型的主要内容,如果未能解决你的问题,请参考以下文章