You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用String interpolation实现与string.Format等价的字符串拼接?

用字符串插值实现给金额添加双引号的更优方式

你的现有写法 var formattedamount1 = $"\"{amount}\""; 是完全有效的,但我们可以通过几种方式避免转义字符,提升代码的可读性:

1. 使用逐字字符串字面量(C# 6+)

在插值字符串前加上@前缀(逐字字符串),这样可以用两个双引号来表示一个实际的双引号,不用写反斜杠转义:

var amount = "$1,000.99";
var formattedAmount = $@"""{amount}""";
// 输出结果:"$1,000.99"

这种写法的好处是减少了转义符,字符串结构更直观,一眼就能看出是给变量前后包裹双引号。

2. 使用原始字符串字面量(C# 11+)

如果你使用的是C# 11或更高版本,原始字符串字面量是最优雅的选择——用三个双引号包裹内容,内部的双引号不需要任何转义:

// 单行写法
var formattedAmount = $""""{amount}"""";

// 多行写法(适合更复杂的字符串场景)
var formattedAmount = $"""
                       "{amount}"
                       """;

原始字符串字面量完全消除了转义的需求,对于包含多个特殊字符的字符串来说,可读性和维护性都大幅提升。

对比与总结

这几种写法最终的输出结果和你原来的代码、以及string.Format的实现完全一致,都是给amount变量前后添加双引号。选择哪种方式取决于你的项目所使用的C#版本:

  • 若使用C# 10及以下,$@"""{amount}""" 是比转义反斜杠更优的选择;
  • 若使用C# 11+,原始字符串字面量是最清晰、最简洁的方案;
  • 你最初的写法$"\"{amount}\"" 完全正确,只是可读性稍逊一筹。

内容的提问来源于stack exchange,提问作者Prasad Kanaparthi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:52:42