1
我已經用逗號分隔的列表,看起來像這樣:Usinq LINQ到搜索分隔的列表與另一個分隔列表
string roleSearch = "Admin,Buyer,Broker";
而且我有一個List<Contacts>
,看起來像這樣:
ContactID Roles
----------------------------
1 "Buyer,Partner"
2 "Broker"
3 "Admin,Buyer,Partner"
我想在Linq中編寫一個查詢,該查詢將將List<Contacts>
細化爲包含任意中中角色的項目。因此,考慮:
roleSearch = "Admin,Buyer"
我想去的地方Roles
包含「管理」或「買方」的任何記錄。兩者都沒有必要。如果「管理員」或「買方」都存在,那麼這是積極的。
使用this post,我接近:
string[] inRoles = roleSearch .Split(',');
results = results.Where(r => inRoles.Contains(r.Roles));
但是,這不是它的確切,因爲它只與每個項目的inRoles
精確匹配返回記錄。意思是,它只返回一個角色的記錄。 Roles
類似於「Admin,Partner」的行會被忽略。
我嘗試這樣做:
string[] inRoles = roleSearch.Split(',');
results = results.Where(r => inRoles.Contains(r.Roles.Split(',')));
但沒有奏效。
P.S.我不能指望任何順序的角色。但是,好消息,潛在角色名單非常少。五最大。
謝謝!測試 –
任何(r => inRoles.Contains(r))比Intersect(...) –