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 に答える