Lambda表达式匹配List <string> </string>

时间:2014-07-03 14:15:06

标签: c# list lambda

我有一个清单

List<String> versionList = new List<String> {"version1", "version2", "version3"}

我希望将mygaList与List versionList中的每个项目匹配,如果versionList中的任何项目与megalist中的项目匹配,那么它将执行某些操作。

我应该使用什么lambda表达式来完成它?

修改已编辑以提供具体要求

foreach (var m in MegaList)        
    .Where(m => m.list.Version.ToLower().Contains(
                           <What should I put here to match this m.list.Version 
                           to match each item in versionList>)) ) //confused here
{
// do some action
}

我的问题与标记为重复的问题有所不同,因为如果它包含来自versionList的任何项目,我想匹配megalist中的特定项目,如果我混淆了问题,请道歉。

另外,根据一式两份的问题答案和下面的答案

我该如何完成这个

foreach (var m in MegaList)  
.Where(v => versionList.Contains(m => m.list.Version))

当我这样做时,在这个命令中无法访问m,这就是我被困住的地方,因为我必须匹配Megalist中每个项目中的列表版本。

需求的简单说明

用简单的术语解释一下,MegaList是一个正在运行的程序列表,我通过将它与versionList匹配来检查这个正在运行的程序列表,如果正在运行的程序与versionList匹配则只执行代码,因此我想要将Megalist列表的版本与versionList匹配,

2 个答案:

答案 0 :(得分:2)

这基本上得到MegaList中的每条记录,该记录也包含在versionList中。在这种情况下,xMegaList中的值,因此我们在List<>.Contains()上使用versionList值进行简单的x

foreach (var m in MegaList.Where(x => versionList.Contains(x.ToLower()))) 
{
// do some action
}

答案 1 :(得分:0)

你可以试试这个:

foreach (var m in MegaList.Where(i => versionList.Contains(i.ToLower())) 
{
// do some action
}