我在这里问是否有任何方法将变量放在C#中的“@”字符串中。 这样在下面的代码中的id可以改变。C#字符串与[@]
string xml = @"
<S>
<child id='1'/>
<child id='2'>
<grandchild id='3' />
<grandchild id='4' />
</child>
</S>";
我在这里问是否有任何方法将变量放在C#中的“@”字符串中。 这样在下面的代码中的id可以改变。C#字符串与[@]
string xml = @"
<S>
<child id='1'/>
<child id='2'>
<grandchild id='3' />
<grandchild id='4' />
</child>
</S>";
看看String.Format方法
var result = string.Format(@"<S>
<child id='{0}'/>
<child id='{1}'>
<grandchild id='{2}' />
<grandchild id='{3}' />
</child>
</S>", id1, id2, id3, id4);
不能直接(C#没有插值),但你可以通过一个@ -string到string.Format
或string.Concat
。 (或者,对于masochasists,Regex.Replace
)
非常感谢 –
可以使用的String.format:
string.Format(@"<S>
<child id='{0}'/>
<child id='{1}'>
<grandchild id='3' />
<grandchild id='4' />
</child>
</S>", childId1, childId2);
使用的String.format()来在运行时将值插入到字符串中。有关它的更多信息可以在MSDN找到。
string xml = string.Format(@"
<S>
<child id='{0}'/>
<child id='{1}'>
<grandchild id='{2}' />
<grandchild id='{3}' />
</child>
</S>", id1, id2, id3, id4);
这并不是虽然创建XML,因为你必须确保你插入任何值正确转义为它的位置,但只要你严格插入数值这不应该是推荐的方式成为一个问题。
这大部分看起来像从其他答案复制/粘贴,但+1无论如何指出它可能不安全 –
大多数答案写在几分钟内,所以没有人真的有时间复制粘贴任何人。当我开始写我的时候,只有Ben Voigts回答,尽管它缺乏一些解释。当我完成时,其他人已经提交了答案。 –
'string.Format'是你的朋友。 – zzzzBov
XElement/XAttribute构造函数被设计为以类似可构造的方式工作。 – Brannon
谢谢你,如果你在制作XML,我会尝试这个 –