title: Fast and memory efficient ASCII string class for .NET
body: <p>This might have been asked before, but I can't find any such posts. Is there a class to work with ASCII Strings? The benefits are numerous:</p>
  
  <ol>
  <li>Comparison should be faster since its just byte-for-byte (instead of UTF-8 with variable encoding)</li>
  <li>Memory efficient, should use about half the memory in large strings</li>
  <li>Faster versions of ToUpper()/ToLower() which use a Look-Up-Table that is language invariant</li>
  </ol>
  
  <p>Jon Skeet wrote a basic <a href="http://msmvps.com/blogs/jon_skeet/archive/2011/04/05/of-memory-and-strings.aspx">AsciiString implementation</a> and proved #2, but I'm wondering if anyone took this further and completed such a class. I'm sure there would be uses, although no one would typically take such a route since all the existing String functions would have to be re-implemented by hand. And conversions between String &lt;> AsciiString would be scattered everywhere complicating an otherwise simple program.</p>
  
  <p>Is there such a class? Where?</p>