如何在C#中更新列表

时间:2014-11-19 09:16:36

标签: c#

IList<ReceiptAllocationMaster> objReceiptMaster = (IList<ReceiptAllocationMaster>)Session["AllocationResult"];

public class ReceiptAllocationMaster
{
    public string application { get; set; }

    public List<Users> users { get; set; }
}

public class Users
{
    public string name { get; set; }

    public string surname { get; set; }
}

我需要更新上面的列表,其中application = "applicationame"surname = "surname"的用户在同一列表中有一些值。

2 个答案:

答案 0 :(得分:0)

只需遍历您的列表并修改匹配的项目:

        for (int i = 0; i < objReceiptMaster.Count; i++)
        {
            var item = objReceiptMaster[i];
            if (item.application == "applicationname" && item.users.Any(x => x.surname == "surname"))
                objReceiptMaster[i] = new ReceiptAllocationMaster();
        }

您可以编写任何修改数据逻辑,而不是new ReceiptAllocationMaster()

答案 1 :(得分:0)

虽然你的问题不明确,但是这个给你一些想法:

objReceiptMaster.Where(x=>x.application=="applicationname" && 
                          x.users.Any(d=>d.surname=="surname"))
                .ToList()
                .ForEach(item=>{//update your list
                           item.application = "whatever value";  

                           item.users.ForEach(user=>{//update users 

                               user.name="whatever username";
                          });   
                      });