如何对一个列表与另一个列表执行Linq查询

本文关键字:列表 另一个 执行 查询 Linq 一个 | 更新日期: 2023-09-27 17:50:58

我有一个List of Member class, members。Member类具有以下属性:

MemberId: stringMemberName:字符串出生日期:DateTime

List<Member> members = FindMembers();

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

List<string> memberIds = GetTeenAgeMemberIds();

现在我必须用memberIds list中的值查询Members列表。请告诉我如何使用Linq。

如何对一个列表与另一个列表执行Linq查询

您可以使用以下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();

使目标列表成为一个数组或一些明显管理的东西,在它上面使用Contains来比较您拥有的MemberId与您拥有的列表。