【问题标题】:LINQ to compare item in one list to any item in anotherLINQ 将一个列表中的项目与另一个列表中的任何项目进行比较
【发布时间】:2012-03-03 07:19:19
【问题描述】:

我想知道,如果有人可以帮助我...

如果一个IList<> 中的任何项目包含在另一个IList<> 中,是否有一个返回布尔值的LINQ 查询。

这些IList<>'s 是对象,我需要比较对象的单个属性,在这种情况下是“名称”属性?

是否有可以执行此操作的 LINQ 查询?如果是这样,有人可以告诉我正确的实现吗?

谢谢

【问题讨论】:

    标签: linq entity-framework linq-to-entities


    【解决方案1】:

    你可以同时投影两个列表:

    if (list1.Select(x => x.Name)
             .Intersect(list2.Select(x => x.Name))
             .Any())
    

    这就是你所追求的吗?

    【讨论】:

    • 再次感谢乔恩,这正是我所需要的!
    【解决方案2】:

    我认为应该这样做:

    bool matchExists = list1.Any(a1 => list2.Any(a2 => a1.Name == a2.Name));
    

    【讨论】:

      【解决方案3】:

      另一种供您选择:

      List1.Where(l => List2.Select(s => s.Name).Contains(l.Name)).Any();
      

      【讨论】:

      • 看完条件更新了……演戏之前应该先学会看书。
      【解决方案4】:

      我通常像下面这样使用它:

      List<UserInfo> userUpd = nd.Where(x => !rd.Any(y => y.Identifier.Equals(x.Identifier))).ToList();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-17
        • 1970-01-01
        • 2019-04-15
        • 1970-01-01
        • 2022-01-22
        • 2014-08-25
        相关资源
        最近更新 更多