我的查询:
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
}
}
但这似乎仍然无效。它只是与其他方式完全匹配。
如何在查找中合并包含或Where?
答案 0 :(得分:0)
我不确定但你可以在每个之前进行字符串操作:
类似于:j.Job.replace(',','');
答案 1 :(得分: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 });