在MembershipUserCollection上使用Linq
问题描述:
我有这段代码,它通过使用我的成员资格提供程序为我提供了所有用户的列表。在MembershipUserCollection上使用Linq
var users = Membership.GetAllUsers();
var usernames = new List<string>();
foreach(MembershipUser m in users)
usernames.Add(m.UserName);
我想应该有使用LINQ to做一个简单的方法,但我似乎无法使用LINQ在MembershipUserCollection
答
因为MembershipUserCollection只实现IEnumerable
,不IEnumerable<MembershipUser>
,您需要使用LINQ的扩展方法Cast然后再使用其他LINQ的扩展方法:
Membership.GetAllUsers().Cast<MembershipUser>().Select (m => m.UserName);
答
您应该能够使用LINQ,如果您第一次使用Cast<T>()
方法就可以了。
像这样:
var usernames = Membership.GetAllUsers().Cast<MembershipUser>().Select(x => x.UserName).ToList();
答
我用这段代码创建成员的泛型列表:
List<Member> memberList = new List<Member>();
foreach (MembershipUser membershipUser in members)
{
int id = Convert.ToInt32(membershipUser.ProviderUserKey);
memberList.Add(new Member(id));
}
答
一般以显式类型转换的另一种方法是使用
OfType<MembershipUser>
所以你有
var userList = Membership.GetAllUsers().OfType<MembershipUser>().ToList();
排序30,000条记录时,我收到了“评估超时”消息 – 2017-10-20 13:25:23