2

在我的应用程序中,您可以将用户链接到他们存储在列表“userList”中的组织:

List<OrganizationUserViewModel> userList = new List<OrganizationUserViewModel>();

foreach (var ou in org.Users.OrderBy(x => x.User.UserName).ToList())
{
    var user = Gateway.Instance.Map<User, OrganizationUserViewModel>(ou.User);
    user.Organization_UserId = ou.Organization_UserId;
    userList.Add(user);
}

可以在一个菜单中选择这些用户,该菜单显示连接到其他可以链接的组织的所有用户。

此代码片段填充了组织列表,其中包含所有附加到它们的用户:

foreach (var childOrg in viewModel.ChildOrganizations)
{
    childOrg.Users = new List<OrganizationUserViewModel>();
    var users = this._organizationManager.GetOrganizationUsers(childOrg.OrganizationId);
    foreach (var user in users)
    {
        var u = Gateway.Instance.Map<User, OrganizationUserViewModel>(user.User);
        u.Organization_UserId = user.Organization_UserId;
        childOrg.Users.Add(u);
    }
}

我的问题是,我需要在没有任何已选择的用户的情况下显示这个可选列表。例如,如果一个名为“Apple”的用户已被链接,则他们不应出现在可选择列表中。

解决这个问题的最有效方法是什么?提前谢谢了。

4

1 回答 1

4

假设两个列表具有相同的数据类型,Linq 来救援:

var allowedSelectionsList = selectableList.Except(selectedList).ToList();

?

于 2013-04-15T15:11:00.353 回答