2015-02-24 89 views
0

我用下面的代碼LINQ的匹配字符串列表和字符串值

string userList = string.Join(",", db.UserRole.Where(p => p.FirmUserID == 1).Select(p => p.RoleID.ToString())); 

用戶列表下方值,

1,12,17,33,76 

我也有下面的字符串列表

List<string> roleList = new List<string>(); 
roleList.add("14"); 
rolelist.add("33"); 
roleList.add("76"); 

哪有我檢查userList包含roleList值並在實體框架中獲取匹配值?

+1

是否有任何理由將用戶列表保留爲單個字符串而不是列表?以及爲什麼你使用字符串來表示看起來像是所有數字的值? – 2015-02-24 14:49:20

+0

不是真的如果你可以建議matcihng的名單我可以申請在我身邊感謝幫助和實現 – Beyto 2015-02-24 14:49:58

+0

任何幫助,請@JonSkeet – Beyto 2015-02-24 14:51:53

回答

2

所有,而不是你的用戶列表轉換爲字符串首先把它作爲一個List

List<string> userList = db.UserRole.Where(p => p.FirmUserID == 1).Select(p => p.RoleID.ToString()).Tolist(); 

要檢查用戶列表包括的RoleList

bool doesInclude = !roleList .Except(userList).Any(); 

獲得比賽:

List<string> matches = userList.Intersect(roleList).ToList(); 

但是,如果這是你需要完成的任務'更好地工作sith整數類型而不是字符串,因爲字符串比較更容易出錯(由用戶)。

+0

非常感謝你:) – Beyto 2015-02-24 15:38:29

+0

不客氣。很高興幫助。 – user3021830 2015-02-24 15:40:17