c#使用linq替换类的属性中的字符串不起作用

Amy*_*myn 1 c# linq replace

我正在尝试在类的属性中找到特定的字符串,如果找到,则将其替换为另一个字符串。我使用Linq尝试了各种方法,但无法替换它。在调试模式下,当我再次监视对象时,replace命令无效。请帮忙。包括下面的示例示例。

class Tryreplace
{
    public string ClubName { get; set; }
}

List<Tryreplace> tryreplaces = new List<Tryreplace>();

Tryreplace tryreplace = new Tryreplace { ClubName = "Manchester United FC" };

Tryreplace tryreplace2 = new Tryreplace { ClubName = "Arsenal FC" };

tryreplaces.Add(tryreplace);

tryreplaces.Add(tryreplace2);
Run Code Online (Sandbox Code Playgroud)

尝试了以下2种方法,但两种方法均无效...

tryreplaces.ForEach(x => x.ClubName.Replace("Manchester", "Newcastle"));



List<Tryreplace> tryreplaces2 = tryreplaces.Select(x => { x.ClubName.Replace("Manchester", "Newcastle"); return x; }).ToList();
Run Code Online (Sandbox Code Playgroud)

毕竟,我只看到曼彻斯特,而不是纽卡斯尔。

我希望在对象中而不是在曼彻斯特看到替换的字符串纽卡斯尔。请帮忙!

ilk*_*ran 8

查看方法中的官方文档String.Replace()

返回一个新字符串,在该字符串中,当前实例中所有出现的指定字符串都被另一个指定字符串替换。

因此,您将需要如示例中所示设置属性:

tryreplaces.ForEach(x => x.ClubName = x.ClubName.Replace("Manchester", "Newcastle"))
Run Code Online (Sandbox Code Playgroud)

Microsoft的String.Replace()文件