I am studying the source code today and found that ToCamelCase could be optimized.
The current implementation stack allocates a new char array, works on it and create a string from that char array.
You can use String.Copy to copy an instance of a string, and directly pin the string with a fixed statement and work on that copy. This saves one allocation and quite a few char assignments.