linq c#中的"in"运算符?

use*_*312 0 c# linq

我有一个包含成员详细信息的通用列表,我有一个成员字符串数组.我需要过滤列表并获取包含所有memberIds的结果.如何使用LINQ实现此目的.

我尝试了以下内容

string[] memberList = hdnSelectedMemberList.Value.Split(',');
_lstFilteredMembers = lstMainMembers.Where(p =>memberList.Contains(p.MemberId))
                                    .ToList();
Run Code Online (Sandbox Code Playgroud)

但是上面的查询只给出了与第一个成员ID匹配的结果.假设我在memberList数组中有memberIds 1,2,3,4,那么它在查询只包含成员后返回的结果会员ID 1 ..即使实际列表中有1,2,3,4,5 ...

你能指导我做错了吗?

谢谢,感谢您的反馈.

Joe*_*Joe 5

字符串是可怕的主键.尝试修剪列表:

string[] memberList = hdnSelectedMemberList.Value
                          .Split(',')
                          .Select(p => p.Trim())
                          .ToList();

_lstFilteredMembers = lstMainMembers.Where(p => memberList.Contains(p.MemberId)).ToList();
Run Code Online (Sandbox Code Playgroud)

因为我有一种感觉hdnSelectedMemberList可能"1, 2, 3, 4".