2015-09-26 133 views
3

我正在检索列表并需要获取特定记录。我尝试了几种不同的方式,但每种方式都会产生错误。我收到上述错误使用以下代码:无法将方法组“FirstOrDefault”转换为非委托类型

List<DashboardModel> dashboardData = CompanyClient.GetContractorRankingByMajorIDAndContractorID(majorId, contractorId); 
DashboardModel SSQScore = new DashboardModel(); 
SSQScore = dashboardData.Where(x=>x.ModuleInstanceID == 1).FirstOrDefault; 

列表由方法(GetContractor ...)返回。

任何援助非常感谢!

+2

'FirstOrDefault();'。你忘了括号 –

回答

5

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); 
+1

@ M.kazemAkhgary,可能我认为我们同时写了它)。这太明显了:) – Abel

+1

你们俩太棒了!谢谢您的帮助。我从来不会想出失踪()。 –

相关问题