2016-09-16 75 views
1

我试图运行下面的代码,但我得到第一个SelectMany语句错误:“方法'IEnumerable<TResult> System.Linq.Enumerable.SelectMany...'的类型参数不能从推断请尝试明确指定类型参数“。 公司有一个Employments的列表,我想要获得一个名为"Company1"的公司的所有employments的列表,并且在我需要过滤该员工正在工作(当EndDate为空时)并返回一个仅与他们的姓名对应的列表之后。SelectMany列表中:“类型参数不能从使用推断”

我需要使用Linq查询来完成它。

var employees = FindAllCompanies() 
      .Where(x => x.Name == "Company1") 
      .SelectMany(x => x.Employments) 
      .Select(x => x.EmploymentEndDate == null) 
      .SelectMany(x.Name); 

回答

8

我认为你有一个错字,而不是

.Select(x => x.EmploymentEndDate == null) 

你想

.Where(x => x.EmploymentEndDate == null) 

如果选择这个,你会得到一个bool,还没有一个Name财产,课程。

最后SelectMany也是错误的,而不是

.SelectMany(x.Name) 

.Select(x => x.Name) 
+0

感谢蒂姆,你说什么是问题的一部分,并帮助我。 除此之外,我在公司的职业类别中遇到了进口问题,这让我的SelectMany不起作用。 – Nipo