我想这是微不足道的,但不适合我。
我有一个集合MembershipUserCollection
。我想对它执行一些Linq查询,因此我使用了OfType<MembershipUser>()
方法,然后在其上应用了Where()
。但是,我不知道如何将结果反馈给MembershipUserCollection
?
这是我的代码:
MembershipUserCollection Users;
Users = GetAllUsers(pageIndex, pageSize, out totalRecords).OfType<MembershipUser>().Where(user => user.Email == emailToMatch); //how to cast it back to MembershipUserCollection ?
GetAllUsers(pageIndex, pageSize, out totalRecords)
正在返回MembershipUserCollection
感谢您的时间。
答案 0 :(得分:1)
我认为你不能在查询中做到这一点,但你应该能够做到这一点:
var query = GetAllUsers(pageIndex, pageSize, out totalRecords)
.OfType<MembershipUser>()
.Where(user => user.Email == emailToMatch);
var users = new MembershipUserCollection();
foreach (var user in query)
{
users.Add(user);
}
(当然,如果需要,可以将该逻辑包装到扩展方法中,然后在查询中调用扩展方法。)
答案 1 :(得分:0)
可能的解决方案之一:
var users = GetAllUsers(pageIndex, pageSize, out totalRecords)
.OfType<MembershipUser>()
.Where(user => user.Email == emailToMatch);
MembershipUserCollection membershipUsers = new MembershipUserCollection();
users
.ToList()
.ForEach(membershipUsers.Add);
另一个带有foreach陈述的人:
foreach (var user in users)
{
membershipUsers.Add(user);
}
答案 2 :(得分:0)
所以这很简单,我只需要像这样投射:
MembershipUserCollection Users;
Users = (MembershipUserCollection)GetAllUsers(pageIndex, pageSize, out totalRecords).OfType<MembershipUser>().Where(user => user.Email == emailToMatch).Cast<MembershipUser>();
谢谢你的朋友们。