2016-06-25 3 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

Не следует добавлять '' 'вокруг имени и id:' @ "{" "значение" ":" "someval" "," id "": "" {0} "", "" name "": "{1}" "}" ' – csharpfolk

+0

@csharpfolk: конечно, я должен :-) –

+0

Это метание System.Format Исключение: {" value ":" someval "," id ":" {0} "," name ":" {1} "} – Dishant

0

Вы также можете избежать двойные кавычки:

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

Или используйте String.Concat

var finalString = string.Concat("\"value\" : \"someval\", \"id\" :", var1, "\"name\" :", var2, "}"); 
Смежные вопросы