一旦知道了项目但不是索引,最好的方法就是从C#中的集合中删除项目。这是执行此操作的一种方法,但充其量似乎并不优雅。
//Remove the existing role assignment for the user.
int cnt = 0;
int assToDelete = 0;
foreach (SPRoleAssignment spAssignment in workspace.RoleAssignments)
{
if (spAssignment.Member.Name == shortName)
{
assToDelete = cnt;
}
cnt++;
}
workspace.RoleAssignments.Remove(assToDelete);
我真正想做的是找到要按属性(在本例中为名称)删除的项目,而无需遍历整个集合并使用2个其他变量。