2013-01-06 106 views
0

我有一个Member类成员列表。会员类具有以下属性:如何使用另一个列表执行Linq查询列表

成员Id:字符串 成员名称:字符串 DATEOFBIRTH:日期时间

List<Member> members = FindMembers(); 

我有成员Id的单独列表,如下所示。

List<string> memberIds = GetTeenAgeMemberIds(); 

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

回答

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(); 
+0

不幸的是我不能使用数组。我必须得到过滤列表作为列表,因为我必须使用此列表来绑定gridview。谢谢 – user466663

+0

@ user466663然后,只需将'ToArray()'调用替换为'ToList()'。 – Mir

0

使目标列表中的数组或东西显然是托管的,使用Contains来比较你所拥有的MemberId和你拥有的列表。

相关问题