13,048,846 members (69,163 online)
Alternative Tip/Trick
alternative version

#### Stats

2.2K views
2 bookmarked
Posted 15 Feb 2011

# How to Toggle String Case in .NET

, 8 Mar 2011
 Rate this:
Several of the answers here lack fallbacks for Unicode.static string ToggleCaseHA(string str) { char[] chs = str.ToCharArray(); for (int i = chs.Length - 1; i >= 0; i--) { char ch = chs[i]; char foo = (char)(ch & ~0x20); if ((foo >= 0x41 && foo <= 0x5a)...
Several of the answers here lack fallbacks for Unicode.

```static string ToggleCaseHA(string str) {
char[] chs = str.ToCharArray();
for (int i = chs.Length - 1; i >= 0; i--) {
char ch = chs[i];
char foo = (char)(ch & ~0x20);
if ((foo >= 0x41 && foo <= 0x5a) || (foo >= 0xc0 && foo <= 0xde && foo != 0xd7))
chs[i] = (char)(ch ^ 0x20);
else if (foo == 0xdf || (ch > 0xff && char.IsLetter(ch))
chs[i] = char.IsLower(ch) ? char.ToUpper(ch) : char.ToLower(ch);
}
return new string(chs);
}```

Note by Alex Bell: this algorithm was included in test set at: http://webinfocentral.com/resources/toggleCaseAlgorithm.aspx[^] .

This algorithm indeed can process the Unicode String, but so can do all other algorithms (Alternate 1, Alternate 2, etc.) except for the "`TogglebyCeChode`" (which is the fastest, but does not work on Unicode text).

After sample testing, this proposed algorithm demonstrated just a marginal performance increase over Alternate 1 and Alternate 2.

## Share

 United States
No Biography provided

## You may also be interested in...

 First Prev Next
 Further testing of this Algorithms lead to interesting findi... DrABELL16-Feb-11 7:05 DrABELL 16-Feb-11 7:05
 Last Visit: 31-Dec-99 18:00     Last Update: 24-Jul-17 22:03 Refresh 1