我有一个包含成员详细信息的通用列表,我有一个成员字符串数组.我需要过滤列表并获取包含所有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 ...
你能指导我做错了吗?
谢谢,感谢您的反馈.
字符串是可怕的主键.尝试修剪列表:
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".