Using Linq on MembershipUserCollection

本文关键字:MembershipUserCollection on Linq Using | 更新日期: 2023-09-27 18:19:52

我有这样的代码,它通过使用我的成员资格提供程序为我提供了所有用户的列表。

        var users = Membership.GetAllUsers();
        var usernames = new List<string>();
        foreach(MembershipUser m in users)
            usernames.Add(m.UserName);

我认为应该有一种更简单的方法通过使用LINQ来实现这一点,但我似乎无法在MembershipUserCollection 上使用LINQ

Using Linq on MembershipUserCollection

由于MembershipUserCollection只实现IEnumerable,而不实现IEnumerable<MembershipUser>,因此需要使用Linq扩展方法Cast,然后使用其他Linq扩展方式:

Membership.GetAllUsers ().Cast<MembershipUser> ().Select (m => m.UserName);

如果您首先在LINQ上使用Cast<T>()方法,那么您应该能够使用LINQ。

像这样:

var usernames = Membership.GetAllUsers().Cast<MembershipUser>().Select(x => x.UserName).ToList();

通常,显式强制转换的替代方法是使用

OfType<MembershipUser>

所以你有

var userList = Membership.GetAllUsers().OfType<MembershipUser>().ToList();

我使用这段代码创建了一个成员的通用列表:

List<Member> memberList = new List<Member>();
foreach (MembershipUser membershipUser in members)
{
    int id = Convert.ToInt32(membershipUser.ProviderUserKey);
    memberList.Add(new Member(id));
}
相关文章:
  • 没有找到相关文章