Vla*_*mir 0 c# string string-interpolation
我遇到了C#6中嵌套字符串插值的问题.
例如,有一个字符串:
string test = "StartText MiddleText1 MiddleText2 EndText";
Run Code Online (Sandbox Code Playgroud)
如果我只想为MiddleText1 应用ToUpper()方法,我可以这样做:
string test = $@"StartText {"MiddleText1".ToUpper()} MiddleText2 EndText";
Run Code Online (Sandbox Code Playgroud)
但是,如果我想应用一个字符串方法,例如对这部分字符串的Replace(),该怎么办:
{"Middletext1".ToUpper()} MiddleText2
Run Code Online (Sandbox Code Playgroud)
我希望这样的东西能起作用:
string test = $@"StartText {"{"MiddleText1".ToUpper()} MiddleText2".Replace("x", "y")} EndText";
Run Code Online (Sandbox Code Playgroud)
但是这种语法是错误的 - 我尝试了很多变化,使用配额但我无法为此目的获得正确的语法.我希望不要将字符串分成不同的部分.有没有办法只使用插值功能来解决它?
停止尝试在一行中做所有事情是我的建议
以下是答案
var middle = "MiddleText1";
middle = middle.ToUpper();
var middle2 = $"{middle} MiddleText2";
middle2 = middle2.Replace("x", "y");
string test = $"StartText {middle2} EndText";
Run Code Online (Sandbox Code Playgroud)
当你把它们全部加在一起时.
string test = $"StartText {$"{"MiddleText1".ToUpper()} MiddleText2".Replace("x", "y")} EndText";
Run Code Online (Sandbox Code Playgroud)
简而言之,你只是错过了一个 $
然而,即使这是混乱的,因为我不确定所有的替换是什么,这个文本来自哪里,你要解决的问题是什么
| 归档时间: |
|
| 查看次数: |
594 次 |
| 最近记录: |