サーチ…


構文

  • $ "コンテンツ{式}のコンテンツ"
  • $ "コンテンツ{式:フォーマット}コンテンツ"
  • $ "content {expression} {{中括弧内のコンテンツ}}}}"
  • $ "コンテンツ{式:フォーマット} {{中括弧内のコンテンツ}}コンテンツ}" "

備考

文字列補間はstring.Format()メソッドの省略形で、文字列内に変数と式の値を含む文字列を作成しやすくします。

var name = "World";
var oldWay = string.Format("Hello, {0}!", name);  // returns "Hello, World"
var newWay = $"Hello, {name}!";                   // returns "Hello, World"

完全な式は、補間された文字列でも使用できます。

var StrWithMathExpression = $"1 + 2 = {1 + 2}"; // -> "1 + 2 = 3"

string world = "world";
var StrWithFunctionCall = $"Hello, {world.ToUpper()}!"; // -> "Hello, WORLD!"

.NET Fiddleのライブデモ

文字列の日付の書式設定

var date = new DateTime(2015, 11, 11);
var str = $"It's {date:MMMM d, yyyy}, make a wish!";
System.Console.WriteLine(str);

DateTime.ToStringメソッドを使用して、 DateTimeオブジェクトをフォーマットすることもできます。これにより、上記のコードと同じ出力が生成されます。

var date = new DateTime(2015, 11, 11);
var str = date.ToString("MMMM d, yyyy");
str = "It's " + str + ", make a wish!";
Console.WriteLine(str);

出力:

2015年11月11日、願いを!

.NET Fiddleのライブデモ

DateTime.ToStringを使用したライブデモ

注: MMは月を表し、 mmは分を表します。間違いが発見しにくいバグを導入する可能性があるため、これらを使用する際は十分に注意してください。

簡単な使用法

var name = "World";
var str = $"Hello, {name}!";
//str now contains: "Hello, World!";

舞台裏

内部的には

$"Hello, {name}!" 

このようなものにコンパイルされます:

string.Format("Hello, {0}!", name);

出力を埋め込む

文字列は、挿入された文字列が使用する文字位置の数を指定するパディングパラメータを受け入れるようにフォーマットできます。

${value, padding}

注:正のパディング値は左のパディングを示し、負のパディング値は右のパディングを示します。

左パディング

左パディング5(numberの値の前に3つのスペースが追加されるため、結果の文字列には合計5文字の位置が必要です)。

var number = 42;
var str = $"The answer to life, the universe and everything is {number, 5}.";
//str is "The answer to life, the universe and everything is    42.";
//                                                           ^^^^^
System.Console.WriteLine(str);

出力:

The answer to life, the universe and everything is    42.

.NET Fiddleのライブデモ

右パディング

負のパディング値を使用する右パディングでは、現在の値の末尾に空白が追加されます。

var number = 42;
var str = $"The answer to life, the universe and everything is ${number, -5}.";
//str is "The answer to life, the universe and everything is 42   .";
//                                                           ^^^^^
System.Console.WriteLine(str);

出力:

The answer to life, the universe and everything is 42   .

.NET Fiddleのライブデモ

書式指定子によるパディング

既存の書式指定子をパディングと組み合わせて使用​​することもできます。

var number = 42;
var str = $"The answer to life, the universe and everything is ${number, 5:f1}";
//str is "The answer to life, the universe and everything is 42.1 ";
//                                                           ^^^^^

.NET Fiddleのライブデモ

文字列の数値の書式設定

コロンと標準数値書式構文を使用して、 数値の書式設定方法を制御できます。

var decimalValue = 120.5;

var asCurrency = $"It costs {decimalValue:C}";
// String value is "It costs $120.50" (depending on your local currency settings)

var withThreeDecimalPlaces = $"Exactly {decimalValue:F3}";
// String value is "Exactly 120.500"

var integerValue = 57;

var prefixedIfNecessary = $"{integerValue:D5}";
// String value is "00057"

.NET Fiddleのライブデモ



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow