我的查找:
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
}
}但这似乎仍然行不通。它只是以另一种方式精确地匹配名称。
如何在查找中合并contains或Where?
发布于 2012-07-06 00:40:23
如果我理解正确的话,你想要像这样的东西
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 });发布于 2012-07-06 00:39:01
我不确定,但您可以在for each之前进行字符串操作:类似于:j.Job.replace(',','');
https://stackoverflow.com/questions/11348679
复制相似问题