我正在尝试使用递归来提升层次结构,但出现此错误:
Collection was modified; enumeration operation may not execute.
我在这里的假设是,当它每次进入函数时,它使用的是相同的 parentRolesCopy 而不是不同的,所以当它第二次进入时,它会将 parentRolesCopy 更改为原始函数调用中的不同。
我怎样才能解决这个问题?
private IEnumerable<string> GetAllParentRoles(string role)
{
// GET EACH PARENT ROLE
var parentroles = //code that gets any parents of the role passed in
//RECURSIVELY CALL THIS FUNCTION TO KEEP GETTING PARENTS OF PARENT ROLES UNTIL NONE LEFT
var parentRolesCopy = parentroles;
foreach (var parentrole in parentRolesCopy)
{
parentroles.AddRange(GetAllParentRoles(parentrole));
}
return parentroles;
}