无法转换方法组' FirstOrDefault'到非委托类型

时间:2015-09-26 15:03:54

标签: c# asp.net-mvc linq asp.net-mvc-4 lambda

我正在检索List并需要获取特定记录。我尝试过几种不同的方式,但每种方式都会产生错误。我使用以下代码收到上述错误:

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

方法返回List(GetContractor ...)。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分: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);