【问题标题】:Lambda expression to match a List<string>匹配 List<string> 的 Lambda 表达式
【发布时间】:2014-07-03 23:40:33
【问题描述】:

我有一个清单

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

我想将我的 megaList 与 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
}

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

也根据重复问题的答案和下面的答案

我怎样才能做到这一点

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

当我在此命令中无法访问上述 m 时,这是我卡住的地方,因为我必须匹配 Megalist 中每个项目中的列表版本。

需求的简单说明

简单来说,MegaList 是一个正在运行的程序列表,我通过将它与 versionList 匹配来检查这个正在运行的程序列表,如果正在运行的程序与 versionList 匹配,那么只有代码应该被执行,因此我想将 Megalist 列表的版本与 versionList 匹配,

【问题讨论】:

  • 能否请您指出与我的问题相匹配的特定问题,因为我在找不到答案时问了这个问题,谢谢:)
  • 糟糕,我刚刚看到标记为重复的问题的链接在顶部。

标签: c# list lambda


【解决方案1】:

这基本上得到了MegaList 中的每条记录,它也包含在versionList 中。在这种情况下,x 是您的MegaList 中的一个值,因此我们使用x 值对versionList 执行一个简单的List&lt;&gt;.Contains()

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

【讨论】:

  • @user3677174 哈哈其实我不是在和你说话我是在和XN16说话。
  • @Kazark 我现在添加了一些解释。但是,您的评论应适用于问题的所有答案(如果适用),而不是单独列出单个答案!
  • @XN16 您的答案出现在审核队列中。我没有看到任何其他答案。
  • @Kazark 很公平,我认为它被标记是因为与该问题的另一个答案相似。
  • 感谢@XN16 的回答,我的查询并不完全满意,但您的回答非常适合我提出的问题。我想要的是 megaList 中项目的 if 部分与 versionList 匹配,那么它应该可以工作,但在此它不会有任何建议。例如如果 megaList 项是“Bank soft version1”,那么这将不起作用
【解决方案2】:

你可以试试这个:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-20
    • 2014-05-03
    相关资源
    最近更新 更多