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

C# 如何使用另一个列表执行列表的Linq查询,c#,linq,C#,Linq,我有一张会员名单,会员。成员类具有以下属性: MemberId:string MemberName:字符串 出生日期:日期时间 List<Member> members = FindMembers(); List members=FindMembers(); 我有一个单独的MemberId列表,如下所示 List<string> memberIds = GetTeenAgeMemberIds(); List memberIds=getteengagememberid

我有一张会员名单,会员。成员类具有以下属性:

MemberId:string MemberName:字符串 出生日期:日期时间

List<Member> members = FindMembers();
List members=FindMembers();
我有一个单独的MemberId列表,如下所示

List<string> memberIds = GetTeenAgeMemberIds();
List memberIds=getteengagememberids();

现在,我必须使用memberIds列表中的值查询Members列表。请告诉我如何使用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与您拥有的列表进行比较。

很遗憾,我无法使用数组。我必须将过滤后的列表作为列表,因为我必须使用此列表绑定gridview。Thanks@user466663然后只需替换对
ToList()
ToArray()调用。