2016-06-25 81 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, "}");