2016-06-25 78 views
0

我想在我的字符串中插入变量,但它给我语法错误。添加字符串中的变量

',' expected 

不知道我在这里失踪。下面是我想做的事:

int var1 = 10; 
    string name = "somename"; 

    string mystring = @"{ ""value"" : ""someval"", ""id"" : " + var1 + ", ""name"" : " + name + " }"); 

预期输出:

{ "value" : "someval", "id" : "10", "name" : "somename"} 
+0

发布您的完整代码并描述更多关于此问题的内容。目前还不清楚你在问什么...... –

+1

@Rakitić,请检查编辑后。 – Dishant

+0

downvote的原因是什么? – Dishant

回答

1

我想这是你想要的东西:

int var1 = 10; 
string name = "somename"; 

string mystring = @"{ ""value"" : ""someval"", ""id"" : """+ var1 + @""" , ""name"" : """+ name + @"""}"; 
Console.WriteLine(mystring); 
Console.ReadKey(); 

输出:

{ "value" : "someval", "id" : "10", "name" : "somename"} 
0

当建立了变量字符串它通常是一个很大的可读性使用格式字符串:

string mystring = string.Format(
    @"{{ ""value"" : ""someval"", ""id"" : ""{0}"", ""name"" : ""{1}"" }}", var1, name); 

在C#6中,使用string interpolation可以表示更简单:

string mystring = $"{{ \"value\" : \"someval\", \"id\" : \"{var1}\", \"name\" : \"{name}\" }}"; 
+0

不应该在name和id周围添加'''':“@”{“”value“”:“”someval“”,“”id“”:“”{0}“”,“”name“”: “”{1}“”}“' – csharpfolk

+0

@csharpfolk:当然我应该:-) –

+0

这是抛出System.Format异常: {”value“:”someval“,”id“:”{0}“,名称“:”{1}“} – Dishant

0

您也可以逃脱双引号:

var finalString = "{ \"value\" : \"someval\", \"id\" : " + var1 + "\"name\" : " + var2 + " }"; 

或者使用string.Concat

var finalString = string.Concat("\"value\" : \"someval\", \"id\" :", var1, "\"name\" :", var2, "}");