2015-02-24 2 views
0

я ниже кодаLinq список строк матча и значение строки

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

USERLIST значение ниже,

1,12,17,33,76 

Я также ниже списка строк

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

Как могу я check userList включает значение roleList и получает значение match в структуре сущности?

+1

Есть ли причина, по которой вы сохраняете список пользователей как одну строку, а не как список? И любая причина, почему вы используете строки для значений, которые выглядят так, как будто они все числа? –

+0

не очень, если вы можете предложить matcihng для списка, я могу подать заявку на мою сторону. За помощь и понимание – Beyto

+0

любая помощь пожалуйста @JonSkeet – Beyto

ответ

2

Прежде всего вместо конвертирования USERLIST в строку держать его в список

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

Чтобы проверить USERLIST включает roleList

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

, чтобы получить матчи:

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

Но если это то, что вам нужно для выполнения Лучше работать с целыми числами sith вместо строки, потому что сравнение строк более подвержено ошибкам (от пользователя).

+0

Спасибо большое :) – Beyto

+0

Добро пожаловать. Рад помочь. – user3021830

Смежные вопросы