C# Формат строки - PullRequest
       0

C# Формат строки

1 голос
/ 30 апреля 2020

C# может форматировать строку, например, $ "string {a} {b} {c}", чтобы подставить переменные a, b и c в строку.

    var a = "string1";
    var b = "string2";
    var c = "string3";
    var d = $"string {a} {b} {c}";    // become "string string1 string2 string3"

Можно сохранить строку формата в переменной, чтобы я мог динамически создавать шаблон строки.

    var a = "string1";
    var b = "string2";
    var c = "string3";
    var template = "string {a} {b} {c}";

    var d = $template;  // Can I do this?

Спасибо!

Ответы [ 4 ]

2 голосов
/ 30 апреля 2020

да, очень возможно, что вы берете одну строку и форматируете ее для заполнения переменных, как на любом языке.

В C# это можно сделать так

var a = "string1"; // first string
var b = "string2"; // second string
var c = "string3"; // third string
var d = "string {0} {1} {2}"; // string to format (fill with variables)

// formatting the string 
var template = string.Format(d, a, b, c);

// output -> "string string1 string2 string3"
2 голосов
/ 30 апреля 2020

Вы должны использовать string.Format:

var a = "string1";
var b = "string2";
var c = "string3";

var template = "string {0} {1} {2}";

var d = string.Format(template, a, b, c);
1 голос
/ 30 апреля 2020

Я думаю, что хорошим кандидатом является string.Format, но вы также можете использовать причудливый FormattableStringFactory.

var a = "string1";
var b = "string2";
var c = "string3";
var template = "string {0} {1} {2}"; //Please note, not {a}, but {0}

var str = string.Format(template, a, b, c); // Preferred

// From System.Runtime.CompilerServices
var str2 = FormattableStringFactory.Create(template, new object[] { a, b, c });

Если вы хотите оставить '{a}' (не '{0}' ) тогда string.Replace здесь, чтобы помочь.

var d = template
       .Replace('{a}', a);
       .Replace('{b}', b);
       .Replace('{c}', c);
1 голос
/ 30 апреля 2020

Вы можете реализовать это, используя String.Format.

var a = "string1";
var b = "string2";
var c = "string3";
var template = "string {0} {1} {2}";

var d = String.Format(template, a,b,c);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...