如何使用另一个列表执行列表的Linq查询

时间:2013-01-06 16:30:34

标签: c# linq

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

MemberId:string MemberName:string DateOfBirth:DateTime

List<Member> members = FindMembers();

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

List<string> memberIds = GetTeenAgeMemberIds();

现在我必须使用memberIds List中的值查询Members列表。请告诉我如何使用Linq进行此操作。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

使目标列表成为一个数组或明显托管的内容,使用Contains来比较你拥有的MemberId和你拥有的列表。