Skip to content

Instantly share code, notes, and snippets.

@vkobel
Created August 7, 2014 14:22
Show Gist options
  • Save vkobel/d7302c0076c64c95ef4b to your computer and use it in GitHub Desktop.
Save vkobel/d7302c0076c64c95ef4b to your computer and use it in GitHub Desktop.
Simple C# extension method to convert a camel case string to underscore notation without any regex
public static class ExtensionMethods {
public static string ToUnderscoreCase(this string str) {
return string.Concat(str.Select((x, i) => i > 0 && char.IsUpper(x) ? "_" + x.ToString() : x.ToString())).ToLower();
}
}
@drizzle-mizzle
Copy link

Easy on eyes solution with custom separator:

public static string ToLowerBySep(this string source, char sep)
{
    var result = new List<char>();
    var chars = source.Replace(" ", "").ToCharArray();

    for (var i = 0; i < chars.Length; i++)
    {
        if (i != 0 && char.IsUpper(chars[i]))
        {
            result.Add(sep);
        }

        result.Add(chars[i]);
    }

    return string.Concat(result).ToLowerInvariant();
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment