2010-04-29 4 views
0

HI, Я хочу динамически конкатенировать строки с помощью C#. У меня есть локализованная строка в XML-файле, эта строка я хочу обновить на основе выбора языка во время выполнения.
Ниже я указал строку ввода и ожидаемые форматы выходной строки.string concatenation

EX: 
    *Input String:* 
     "The density of your %s gas at reference conditions of %s %s and %s %s is:" 
    *Expected Output String:* 
    "The density of your Helium gas at reference conditions of 20.01 g and 15.12 Kg is:" 

Благодаря

+1

Может быть, вы хотите использовать '{0}' '{1}' и т.д. вместо '% s'. – kennytm

+0

Это очень полезно для меня. Спасибо – Ravi

+1

Возможно, пришло время принять хотя бы несколько ответов на ваши вопросы? – Alex

ответ

6

Вы ищете string.Format.

string output = string.Format(
"The density of your {0} gas at reference conditions of {1} {2} and {3} {4} is:", 
    gas, condition1, condition2, condition3, condition 4); 

В отличие от printf функции C, которая опирается на параметры подается в том порядке, в котором они будут быть заменены, string.Format требует, чтобы вы явно указать, какой параметр идет где. Другими словами, {0} означает, что здесь будет заменен первый (0-индексный) параметр.

Вы можете указать строку формата (полезную для чисел и дат и т. Д.) Следующим образом: {1:0.00}. Это означает второй (индекс 1) элемент со строкой формата "0.00" (что бы это ни значило для рассматриваемого типа).

+0

Это очень полезно для меня. Спасибо – Ravi

+0

@ Ravi: Если это решает вашу проблему, обязательно примите этот ответ. Вы также можете подумать о том, чтобы вернуться к некоторым из ваших старых вопросов и отметить ответ на эти вопросы. –

0
string output = "The density of your " + gas.ToString() + " gas at reference conditions of " + weightG.ToSTring() + "g and " + weightKg.ToSTring() + " Kg is:"; 
+1

Как именно это будет работать с локализованными строками, хранящимися в XML-файле? – cjk