我有private List<User> _userList = new List<User>();
。 User
类中包含许多属性,即FirstName, Email, ..
等。我想有选择地更新_userList
中的一个项目
在我的类中考虑以下方法,其中我传递的User
对象包含更新的值。
public void Save(User saveThis)
{
var user = _userList.FirstOrDefault(u => u.RowId == saveThis.RowId);
user = Mapper.DynamicMap<User>(saveThis);
}
由于User
上有许多属性,我使用Automapper进行分配。我不需要创建任何映射,因为源和目标是相同的类型。上面的代码也可以工作到调用Automapper的第二行。问题是我不知道如何将此更新的对象user
放回到_userList
类型的列表中
答案 0 :(得分:1)
您可以获取用户的索引,然后使用索引器(List)替换对象,如下所示:
public void Save(User saveThis)
{
var user_index = _userList
.Select((item, index) => new {Item = item, Index = index})
.Where(u => u.Item.RowId == saveThis.RowId)
.Select(u => (int?)u.Index) //We case to int? to be able to handle the case where the user it not found if we want
.FirstOrDefault();
if(user_index == null) //We can handle the case if the user is not found
return;
var result = Mapper.DynamicMap<User>(saveThis);
_userList[user_index.Value] = result;
}