2012-07-05 129 views
0

我查找:ILookup如何使用Where方法?

var myLookup = myList.ToLookUp(x=> new {x.Name, x.Job, x.Phone}); 

我想要做的事:

x.Name可以包含作業的字符串,或者作業的列表的字符串,即"Programmer""QA, Programmer"

下面的語句將環通提供就業機會,什麼是我查找匹配他們:

foreach(var j in jobs) 
{ 
    foreach(var m in myLookup[new {j.Name, j.Job, j.Phone}]) 
    { 
      //do whatever 
    } 
} 

現在,這個工作正常未設置了一個逗號的任何作業名稱,所以那麼我試過這個:

foreach(var j in jobs) 
{ 
    foreach(var m in myLookup[new {j.Name, j.Job, j.Phone}].Where(x=>x.Name.Contains(j.Name)) 
    { 
      //do whatever 
    } 
} 

但這似乎仍然工作。它只是與其他方式完全匹配的名稱。

如何將我的查找中的包含或位置合併?

回答

0

如果我理解正確的話,你要像

string jobsToMatch = "Programmer,QA"; 
var relevantNames = jobsToMatch.Split(','); 
var myLookup = 
    myList.Where(x => relevantNames.Contains(x.Name)) 
     .ToLookup(k => k.Job, x => new { x.Name, x.Job, x.Phone }); 
0

我不知道,但你可以在之前對每個做字符串操作: 是這樣的:j.Job.replace(',','');