我对这段代码有疑问,当我执行 intersect 方法时,一切正常。
当我在 foreach 之前对我的交叉点进行计数时,我有 1。
在foreach之后,如果在foreach之后再次计数我有0,为什么会发生这种情况?它应该始终是 1...
var matchedRoles = roles.Intersect(user.Roles);
int before = matchedRoles.Count();
foreach (var matchedRole in matchedRoles)
{
user.Roles.Remove(matchedRole);
}
int after = matchedRoles.Count();
if (matchedRoles.Any())
{
accountRepository.Update(user);
}