0

我的查找:

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
     }
}

但这似乎仍然不起作用。它只是像其他方式一样匹配名称。

如何在我的查找中合并包含或位置?

4

2 回答 2

0

我不确定,但您可以在 for each 之前进行字符串操作:类似于:j.Job.replace(',','');

于 2012-07-05T16:39:01.087 回答
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 });
于 2012-07-05T16:40:22.667 回答