C# - 大文字を小文字に、小文字を大文字に変換する

文字列を大文字に変換するには ToUpper() または ToUpperInvariant() 、小文字に変換するには ToLower() または ToLowerInvariant() メソッドを使用します。

大文字・小文字に変換する方法

小文字 ー> 大文字
大文字に変換された文字列 = 対象の文字列.ToUpper();
大文字に変換された文字列 = 対象の文字列.ToUpper(カルチャ);
大文字に変換された文字列 = 対象の文字列.ToUpperInvariant();

大文字 ー> 小文字

小文字に変換された文字列 = 対象の文字列.ToLower();
小文字に変換された文字列 = 対象の文字列.ToLower(カルチャ);
小文字に変換された文字列 = 対象の文字列.ToLowerInvariant();

サンプルプログラム

次のサンプルコードは ToUpper() と ToLower() を使用し、大文字小文字の変換結果を表示します。
// 小文字を大文字に変換する
string upperString = "hello world. hello world。アイウエオ".ToUpper();

// 結果 = HELLO WORLD. HELLO WORLD。アイウエオ
Console.WriteLine(upperString);


// 大文字を小文字に変換する
string lowerString = "HELLO WORLD. HELLO WORLD。アイウエオ".ToLower();

// 結果 = hello world. hello world。アイウエオ
Console.WriteLine(lowerString);
サンプルコードの実行結果
サンプルコードの実行結果

カルチャ とは?

ロケール とも呼ばれ、言語によって異なる 表記体系、使用する暦、文字列の並べ替え順序、および日付と数値の書式 などの情報です。デフォルトのカルチャ は OSの言語設定 などを元に設定されます。

現在のカルチャ は次のコードで確認できます。

現在のカルチャ = System.Globalization.CultureInfo.CurrentCulture;

サンプルプログラム

次のサンプルコードは 現在のカルチャを取得し、書式などを表示します。結果はOSの設定などにより、異なります。
var culture = System.Globalization.CultureInfo.CurrentCulture;
Console.WriteLine($"カルチャ名        : {culture.Name}");
Console.WriteLine($"短い日時の書式    : {culture.DateTimeFormat.ShortDatePattern}");
Console.WriteLine($"長い日時の書式    : {culture.DateTimeFormat.FullDateTimePattern}");
Console.WriteLine($"整数の桁区切り記号: {culture.NumberFormat.NumberGroupSeparator}");
Console.WriteLine($"少数の桁区切り記号: {culture.NumberFormat.NumberDecimalSeparator}");
サンプルコードの実行結果
サンプルコードの実行結果

ToUpper と ToUpperInvariant、ToLower と ToLowerInvariant の違い

ToUpper と ToLower は カルチャ に基づいて変換を行います。第一引数に CultureInfo を指定できますが、省略すると現在のカルチャ(CultureInfo.CurrentCulture) が使用されます。

ToUpperInvariant と ToLowerInvaria はカルチャの影響は受けず、常に同じ結果を返します。

ToUpper と ToUpperInvariant どちらを使うべきか

日本語や英語であればどちらを使用しても同じ結果を返します。

公式ドキュメントでは ファイル名、名前付きパイプ、レジストリ キーなどは OS設定に依存しないよう、ToUpperInvariant または ToLowerInvariant を使用するように注意書きがあります。

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

ダウンロードリンク

参考資料

検証環境