1

我有一个

 List<string>     

List<string> students; 
students.Add("123Rob"); 
students.Add("234Schulz"); 

和一个

Dictionary<string,string> 

Dictionary<string, string> courses = new Dictionary<string, string>(); 
courses .Add("Rob", "Chemistry");   
courses .Add("Bob", "Math");  
courses .Add("Holly", "Physics"); 
courses .Add("Schulz", "Botany");

我现在的目标是获得一个包含值的列表 - {Chemistry,Botany}

换句话说,我试图获得 LINQ 等价于

select value from [courses]
where [courses].key in 
(
select [courses].key from courses,students where [students].id LIKE '%courses.key%'
)

应该如何构建 LINQ 查询?

4

1 回答 1

5

这是正确的答案:

var values = from c in courses
             where students.Any(s => s.IndexOf(c.Key, StringComparison.OrdinalIgnoreCase) >= 0)
             select c.Value;

在我的机器上测试。希望这能有所帮助。

于 2012-08-27T21:41:08.723 回答