次のコードは、既存のリスト 'selectedUsers' に属していないユーザーのリストを作成します。
foreach (var childOrg in viewModel.ChildOrganizations)
{
List<OrganizationUserViewModel> childOrgUsers = new List<OrganizationUserViewModel>();
var users = this._organizationManager.GetOrganizationUsers(childOrg.OrganizationId);
foreach (var user in users)
{
var userViewModel = Gateway.Instance.Map<User, OrganizationUserViewModel>(user.User);
userViewModel.Organization_UserId = user.Organization_UserId;
if (selectedUsers != null)
{
foreach (OrganizationUserViewModel selectedUser in selectedUsers)
{
if (selectedUser.UserId != userViewModel.UserId)
{
childOrgUsers.Add(userViewModel);
}
}
}
}
childOrg.Users = childOrgUsers;
}
これは、'selectedUsers' 内に 1 人のユーザーしか存在しない場合は正常に機能しますが、多数のエントリがある場合は、foreach ループの結果として新しいリストに複数の追加が行われます。どうすればこれを回避できますか?
助けてくれてありがとう。
編集:私は自分の質問を読んだところですが、本当に明確にしていないので、おそらく明確にする必要があります。foreach はリスト内の各エントリに対して実行されるため、ID が userViewModel の現在のエントリと一致しない場合、選択されたユーザーのエントリも追加されます。これらは、selectedUsers に保存されているものはすべて userViewModel に存在しないようにするため、削除に集中する必要があるものです。説明不足でごめんなさい!