您好我有以下内容:
var table = @"<table id=""table_id"" class=""display"">
正在构建一个表并继续下一行,但我只想在table_id的末尾追加一个字符串:
var table = @"<table id=""table_id" + instance + """ class=""display"">
所以最终输出(如果实例= 1234)应为:
<table id="table_id1234" class="display">
但我认为报价正在抛弃它。关于如何实现最后一行的任何建议?
由于
答案 0 :(得分:7)
string.Format
方法占位符足以连接instance
而不切断引号({0}
是占位符):
var table = string.Format(@"<table id=""table_id{0}"" class=""display"">", instance);
或者您可以使用转义序列\"
来转义没有字符串文字的引号:
var table = "<table id=\"table_id" + instance + "\" class=\"display\">"
结果:
<table id="table_id1234" class="display">
演示:.NET Fiddle
答案 1 :(得分:1)
尝试使用以下代码将转义字符用于双引号(\"
):
var id = "1234";
var table = "<table id=\"table_id" + id + "\" class=\"display\">";
这是一个将字符串转换为escape / unescape的在线工具:
https://www.freeformatter.com/java-dotnet-escape.html
因此,您可以复制结果并放置变量。
答案 2 :(得分:0)
我认为这种情况的最佳想法和最新想法是在您的文字之前的$符号,并且使用此符号您不需要在字符串中添加额外的符号
例如
vat table = $"<table id='table_id{instance}' class='display'">
答案 3 :(得分:0)
@用于从一个字符串中转义双引号,但在您的示例中,您实际上是连接三个不同的字符串,您应该像第三个字符串一样转义:
var table = @"<table id=""table_id" + instance + @" "" class=""display"" >";
或者,您也可以使用StringBuilder类,它可以提高内存效率,并且可以使您的字符串更易于阅读。