【问题标题】:How to to perform Linq query of a list with another list如何使用另一个列表执行列表的 Linq 查询
【发布时间】:2013-01-06 16:30:33
【问题描述】:

我有一个成员类列表,成员。 Member 类具有以下属性:

MemberId : 字符串 会员名:字符串 出生日期:日期时间

List<Member> members = FindMembers();

我有一个单独的 MemberId 列表,如下所示。

List<string> memberIds = GetTeenAgeMemberIds();

现在我必须使用 memberIds 列表中的值查询成员列表。请让我知道如何使用 Linq 做到这一点。

【问题讨论】:

    标签: c# linq


    【解决方案1】:

    您可以使用以下 LINQ 查询:

    var result = members.Where(m => memberIds.Contains(m.MemberId)).
        ToArray();
    

    或者:

    var result = (from m in members
                  join id in memberIds on m.MemberId equals id
                  select m).ToArray();
    

    或者如果您更喜欢方法链:

    var result = members.Join(memberIds, m => m.MemberId, id => id, (m, id) => m).
        ToArray();
    

    【讨论】:

    • 不幸的是我不能使用数组。我必须将过滤后的列表设为 List,因为我必须使用此列表来绑定 gridview。谢谢
    • @user466663 然后只需将ToArray() 调用替换为ToList()
    【解决方案2】:

    将目标列表设为数组或明显管理的对象,在其上使用 Contains 将您拥有的 MemberId 与您拥有的列表进行比较。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-06
      • 2017-06-29
      • 1970-01-01
      相关资源
      最近更新 更多