我正在使用一个列表,其中添加了一个类中的项目。 我需要使用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,但未在建议中显示。
答案 0 :(得分:2)
我认为这就是您想要的:
mItems.Where(x => x.name == "Name3" && x.SubName == "SubName3").ToList().ForEach(x => {
x.name = "Name4";
x.SubName = "SubName4";
});