c# - 列表集合循环
问题描述
语言 c# , Visual Studio 2015
public class UserDTO
{
public string UserID {get;set;}
public string UserName {get;set;}
public string ManagerName {get;set;}
public string ManagerEmail {get;set;}
}
我得到如下列表输入
List<UserDTO> lstUsr = new List<UserDTO>();
lstUsr.Add(new UserDTO { UserID = "A1", UserName = "AXZ" });
lstUsr.Add(new UserDTO { UserID = "B1", UserName = "BYZ" });
我有一种获取 ManagerEmail 和 ManagerName 的方法,输入是 UserID
我需要循环 lstUsr 并更新同一列表中每个用户 ID 的 ManagerEmail 和 ManagerName。
现在我创建多个列表并获得结果。我想知道它是否有效,是否使用相同的 List 来完成?感谢伪代码帮助
string ShiftUserID = string.Join(",", lstUser.Distinct().Select(a => a.UserID));
private List<UserDTO> GetManagerDetail(string ShiftUserID )
{
List<UserDTO> lstMgrDetail = new List<UserDTO>();
UserDTO oUser = null;
string sMgrName;
string sMgrMobile;
string sMgrEmail;
string[] sUserADID = sShiftUserADID.Split(',').Select(sValue => sValue.Trim()).ToArray();
foreach (string sADID in sUserADID)
{
oUser = new UserDTO();
ADHelperUtility.GetManagerDetail(ShiftUserID , out sMgrEmail, out sMgrName);
oUser.ManagerName = sMgrName;
oUser.ManagerEmail = sMgrEmail;
lstMgrDetail.Add(oUser);
}
return lstMgrDetail;
}
解决方案
按照您的期望遍历列表并设置值:类似于:
foreach(UserDTO user in lstUsr)
{
string managerName;
string managerEmail = GetManagerInfoByID(user.UserID, out managerName); // Returns email and send out managerName. You could use an object here instead, just showing this for demo purposes.
user.ManagerName = managerName;
user.ManagerEmail = managerEmail;
}
推荐阅读
- python-3.x - 如何在不关闭 Lambda 请求的情况下返回图像?
- ios - CGAffineTransform 不能正确缩放原点
- sql-server - 尝试合并来自两个不同表的两个选择时出现错误
- javascript - 如何修复倒数计时器?
- javascript - 覆盖对象解构的默认行为的 JavaScript 方法
- lotus-notes - 创建两个具有不同设置的编辑按钮
- javascript - 将重复条目限制在数组 JavaScript 中
- tensorflow - 在 Single Shot Multi-box 检测器中使用基本锚大小
- typescript - 在 Spectron 中选择和上传测试文件
- unity3d - HoloLens 应用突然不再启动!错误:“无法加载游戏程序集”