HUSKING - kotteri

技術系Note

【C#】Pascal、CamelケースをSnakeケースに変換する

C#のプロパティ名をDatabaseのカラム名に変換したい時が稀に。。。
その際に作った変換するメソッドが以下。

変換メソッド

public static string GetSnakeCase(string str)
{
     var regex = new System.Text.RegularExpressions.Regex("[a-z][A-Z]");
     return regex.Replace(str, s => $"{s.Groups[0].Value[0]}_{s.Groups[0].Value[1]}").ToUpper();
}

使用例

Console.WriteLine(GetSnakeCase("PascalCase"));
Console.WriteLine(GetSnakeCase("camelCase"));

コンソール結果

PASCAL_CASE
CAMEL_CASE