簡體   English   中英

使用自動映射器更新項目列表中的一個項目

[英]Using Automapper to update one item in a list of items

我有一個private List<User> _userList = new List<User>(); User類具有許多屬性,即FirstName, Email, ..等。我想選擇性地更新_userList中的_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類型的列表中

您可以獲取用戶的索引,然后使用(列表的)索引器替換對象,如下所示:

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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM