Ввод:
Код: Выделить всё
var list = new List { 1002, 1004, 1006, 1008 };
Код: Выделить всё
public async Task GetUserGroups(List userId)
{
var groups = await _userRepository.GetUserGroupsToDownload();
var userGroups = await _userRepository.GetUserGroupsToDownload(userId);
List aLst = new List();
List ids = new List();
//Found ids from userGroups and add it to a list
foreach (var group in userGroups)
{
var result = new UserGroupDto();
result.GroupId = group.GroupId;
result.Id = group.UserId;
result.EnterpriseId = group.EnterpriseId;
result.Name = groups.Where(c => c.Id == group.GroupId).FirstOrDefault().Name;
result.Enabled = userGroups.Any(ug => ug.GroupId == group.GroupId);
aLst.Add(result);
ids.Add(group.UserId); //Keeping track ids that are found to eliminate in the second loop
}
//Add ids in the list that aren't in the userGroups
foreach (var id in userId.Where(c => !ids.Contains(c)))
{
var result = new UserGroupDto();
result.GroupId = 0;
result.Id = id;
result.EnterpriseId = 0;
result.Name = "";
result.Enabled = false;
aLst.Add(result);
}
return ResponseBase.WithSuccess().WithData(aLst);
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... -iteration
Мобильная версия