Получить все роли, но несколько избранных справки - PullRequest
1 голос
/ 13 августа 2010

Я столкнулся с проблемой, когда мне нужно удалить определенные элементы из коллекций, которые, кажется, имеют только все функции.

Моя идея - получить полную коллекцию, а затем удалить ненужные предметы. Затем возьмите эту новую коллекцию и привяжите ее ко всему, что мне нужно.

Например, как мне получить все роли, кроме администратора?

Roles strRoles = Roles.GetAllRoles()
RoleList.DataSource = (Roles) roles; //Roles.GetAllRoles();
RoleList.DataBind();

или Как мне получить всех пользователей, но сказать user123

MembershipUserCollection users = Membership.GetAllUsers();
UserList.DataSource = users;
UserList.DataBind();

Спасибо заранее, -Скотт

1 Ответ

2 голосов
/ 13 августа 2010

Для этого можно использовать метод расширения Где LINQ.Методы расширения LINQ работают с коллекциями, которые реализуют интерфейс IEnumerable <>.Для первого примера вы можете сделать следующее:

RoleList.DataSource = Roles.GetAllRoles().Where(r => !r.Equals("Administrator"))

Для второго:

IEnumerable<MembershipUser> users = Membership.GetAllUsers().Cast<MembershipUser>()
UserList.DataSource = users.Where(m => !m.UserName.Equals("123"));

Сначала вызов метода Cast преобразует коллекцию в IEnumerable из Membershipusers.

...