Я столкнулся с проблемой, куда я должен удалить определенные объекты из наборов, которые, кажется, только имеют, получают все функции.
Моя Идея состоит в том, чтобы получить полный набор и затем удалить ненужные объекты. Затем возьмите тот новый набор и свяжите его с тем, в чем я нуждаюсь.
Например, Как я получаю все роли кроме администратора?
Roles strRoles = Roles.GetAllRoles()
RoleList.DataSource = (Roles) roles; //Roles.GetAllRoles();
RoleList.DataBind();
или Как я получаю всех пользователей, но говорю user123
MembershipUserCollection users = Membership.GetAllUsers();
UserList.DataSource = users;
UserList.DataBind();
Заранее спасибо, - Scott
Для этого можно использовать метод расширения LINQ Where. Методы расширения 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
.