CaseDotNet 0.3.36

.NET Standard 2.0
dotnet add package CaseDotNet --version 0.3.36
NuGet\Install-Package CaseDotNet -Version 0.3.36
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CaseDotNet" Version="0.3.36" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add CaseDotNet --version 0.3.36
#r "nuget: CaseDotNet, 0.3.36"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install CaseDotNet as a Cake Addin
#addin nuget:?package=CaseDotNet&version=0.3.36

// Install CaseDotNet as a Cake Tool
#tool nuget:?package=CaseDotNet&version=0.3.36


String manipulation library built with intention to make naming conventions conversion easy


Suddenly, suffering from urgent need of easy and performant way to convert strings from arbitrary naming convention to camelCase, I went out searching around NuGet and found out that there are not many options available in .NET (actually one), which would be public, and not part of some parent project. I see that as a huge overlook, considering amount of such packages for other languages (JS, for example), so I decided it would be quite useful to write something which will be reliable and extensible, so here it is.

Note that library is still in development and is lacking some planned functionality (see TODO) or may contain bugs, feel free to report them in the issues section


  • Built-in support for all common naming conventions:
  • Easily extensible:
    • Modular design - combine different types of parsers, word emitters, concatenators, etc. to build the converter you need
    • Modules are dead simple to implement
  • Performant:
    • Default modules' implementation aims to be as much GC-friendly as possible
    • No Regex usage, tokenization done by simple condition-based lexers choosing leftmost overlapped sequence (smallest possible token size is chosen)
  • Zero dependencies:
    • Keeping your application size as low as possible by avoiding third party library bloat
  • Portable:
    • Targets NetStandard2.0, allowing references from .NET Core 2.0 or greater and .NET Framework 4.6.1 or greater
    • Targets NetStandard2.1, allowing references from .NET Core 3.0 or greater


Default Case.NET.Parsing.Parser implementation is not thread-safe in netstandard2.0 build while it is in netstandard2.1. Thus it's recommended to have a Parser instance for each thread, if your project is targeting .NET Framework, or .NET Core 2.0-2.2

For the same reason Parser.Universal is a property, returning new instance every call in netstandard2.0, while it is a static field in netstandard2.1


NuGet package is listed under name of CaseDotNet since Case.NET was reserved


Install-Package CaseDotNet -Version 0.3.0

Include namespace

using Case.NET

Using built-in converters

Class Case.NET.CaseConverter contains static fields with built-in converters under corresponding names:

static void Main(string[] args) {
  CasedString converted = CaseConverter.CamelCase.ConvertCase("not_camel_case");

  Console.WriteLine((string)converted); // notCamelCase

Currently supported conventions (as target)

  • camelCase
  • PascalCase
  • snake_case
  • kebab-case
  • Train-Case


Target conventions to support

  • Capital Case
  • Namespace.Case
  • no case
  • path/case (With optional backslash \ as delimiter)
  • Sentence case
  • Title Case
  • Swap case (Change case of every character) Swap CasesWAP cASE
  • FeNcE CaSe
  • SPonGE CasE
  • reVERse spONge cASe
  • RanDOM CAse


  • Improve unit test coverage
Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows
.NET Core netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard2.0 netstandard2.1
.NET Framework net461 net462 net463 net47 net471 net472 net48 net481
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen40 tizen60
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.
  • .NETStandard 2.1

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on CaseDotNet:

Package Downloads

Various extension methods and APIs for Case.NET

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.3.36 685 3/4/2022

See for full info