2015-09-26 53 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

你們倆太棒了!謝謝您的幫助。我從來不會想出失蹤()。 –

相關問題