我遇到了一个问题,我需要从似乎只能获得所有功能的集合中删除某些项目。
我的想法是获取完整的集合,然后删除不需要的项目。然后拿出那个新的集合并将它绑定到我需要的任何东西。
例如,我如何获得除管理员以外的所有角色?
Roles strRoles = Roles.GetAllRoles()
RoleList.DataSource = (Roles) roles; //Roles.GetAllRoles();
RoleList.DataBind();
或如何获得所有用户,但请说user123
MembershipUserCollection users = Membership.GetAllUsers();
UserList.DataSource = users;
UserList.DataBind();
提前致谢, 斯科特
答案 0 :(得分:2)
您可以使用Where 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
。