【问题标题】:LINQ check if int? is in List<Int> C# [duplicate]LINQ检查是否为int?在 List<Int> C# [重复]
【发布时间】:2015-11-21 21:54:26
【问题描述】:

我有 ID = 5、ID = 6 和列表 1,5 的对象。由于列表有 5,因此我需要 ID = 5 的对象,但如果我的列表有 5 和 6,我需要同时拥有两个对象。希望我足够清楚。

所以是这样的:

result = result.Where(r=>r.ID ***IS IN LIST<int>***).OrderBy(r=>r.ID);

感谢任何帮助。

【问题讨论】:

  • list.contains(r.ID)怎么样
  • result.Where(r =&gt; list.Contains(r.ID)).OrderBy(r =&gt; r.ID)
  • 所以您想返回对象和列表中都存在的元素?
  • 其他人的回答都是正确的。如果您想在内部列表中找到更复杂的行为,这是我使用的真实示例:Sessions.Where(x =&gt; x.Performers.Where(y =&gt; y.PerformerId == performerId).FirstOrDefault() != null)
  • 正是我想要的,又好又简单,但我自己却无法获得。谢谢大家

标签: c# linq list int


【解决方案1】:
result = result.Where(r=>listOfId.Contains(r.ID)).OrderBy(r=>r.ID);

【讨论】:

  • result = result.Where(r=>listOfId.Contains(r.ID)).OrderBy(r=>r.ID);
  • 修复了丢失的括号,感谢@Charkins12
【解决方案2】:
 result = result.Where(r=>yourList.Contains(r.ID)).OrderBy(r=>r.ID)

【讨论】:

    【解决方案3】:

    你可以这样试试:

    result = result.Where(r => somelist.Contains(r.ID)).OrderBy(r => r.ID)
    

    详情请查看List(Of T).Contains Method

    【讨论】:

      【解决方案4】:

      更容易阅读的东西

      var results=(from m in MyObjects
                  Where myList.Contains(m.Id)
                  select m).ToList() ;
      

      【讨论】:

        猜你喜欢
        • 2020-03-06
        • 2020-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多