C# - 文字列中にダブルクォート(")を入れる

文字列中にダブルクォートを入れるには、「"(ダブルクォート)」の前に「\(円記号・バックスラッシュ)」を追加し、エスケープします。

エラーが発生する例

ダブルクォート(")は 文字列リテラル の 開始 と 終了 を表すため、そのまま使用するとコンパイルエラーが発生します。
// 1234567890"abcdef を設定したい
string str1 = "1234567890"abcdef";

// "1234567890""abcdef" を設定したい
string str2 = ""1234567890""abcdef"";
エラーの発生例(Visual Studio)
エラーの発生例(Visual Studio)

解決方法

文字列リテラル中の 「"(ダブルクォート)」の前に「\(バックスラッシュ)」を追加し、エスケープします。エスケープとは、対象文字の機能(この場合は文字列の開始・終了)を無効化することです。

※バックスラッシュ は エディターの設定や環境などにより、見た目が「¥(円記号)」または「\」のいづれかになります。

// 1234567890"abcdef を設定したい
string str1 = "1234567890\"abcdef";

// "1234567890""abcdef" を設定したい
string str2 = "\"1234567890\"\"abcdef\"";


// 結果 = 1234567890"abcdef
System.Console.WriteLine(str1);

// 結果 = "1234567890""abcdef"
System.Console.WriteLine(str2);
改善後(Visual Studio)
改善後(Visual Studio)
サンプルコードの実行結果
サンプルコードの実行結果

サンプルコードのダウンロード

ダウンロードリンク

参考資料

検証環境