使用where语句替换列表中的多个对象

时间:2018-10-17 05:38:20

标签: c#

我正在使用一个列表,其中添加了一个类中的项目。 我需要使用where语句替换同一行中的所有项目。例子

 public class Foo
    {
        public string name { get; set; }
        public string SubName { get; set; }

    }

    private void button1_Click(object sender, EventArgs e)
    {
        List<Foo> mItems = new List<Foo>();
        mItems.Add(new Foo { name = "Name", SubName = "Subname" });
        mItems.Add(new Foo { name = "Name2", SubName = "Subname2" });
        mItems.Add(new Foo { name = "Name3", SubName = "Subname3" });
        if (mItems.Any(x => x.name == "Name3"))
        { 
            //where name is Name3 replace Name3 with Name4 and SubName3 with Subname4
        }
    }

我需要替换name为Name3的两个值。 Name3和subname3。我尝试使用replace,但未在建议中显示。

1 个答案:

答案 0 :(得分:2)

我认为这就是您想要的:

mItems.Where(x => x.name == "Name3" && x.SubName == "SubName3").ToList().ForEach(x => {
    x.name = "Name4";
    x.SubName = "SubName4";
});