user466663
user466663

Reputation: 845

How to to perform Linq query of a list with another list

I have a List of Member class, members. The Member class has the following properties:

MemberId : string MemberName : string DateOfBirth : DateTime

List<Member> members = FindMembers();

I have a separate List of MemberId, as shown below.

List<string> memberIds = GetTeenAgeMemberIds();

Now I have to query the Members list with the values in the memberIds List. Please let me know how could I do this using Linq.

Upvotes: 0

Views: 241

Answers (2)

e_ne
e_ne

Reputation: 8459

You can use the following LINQ query:

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

Alternatively:

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

Or if you prefer method chains:

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

Upvotes: 2

TomTom
TomTom

Reputation: 62093

Make the target list an array or something obviously managed, use Contains on it to compare the MemberId you have with the list you have.

Upvotes: 0

Related Questions