(文字列を逆にしようとしていると仮定すると、質問からはあまり明確ではありません...)
次のような拡張メソッドを使用できます。
public static class StringExtensions
{
public static string Reverse(this string s)
{
if (s == null)
throw new ArgumentNullException("s");
bool wasFormD = false;
if (s.IsNormalized(NormalizationForm.FormD))
{
wasFormD = true;
// Normalize to form C so that composite chars are represented as a single char
s = s.Normalize(NormalizationForm.FormC);
}
s = new String(((IEnumerable<char>)s).Reverse().ToArray());
// Restore normalization form D
if (wasFormD)
{
s = s.Normalize(NormalizationForm.FormD);
}
return s;
}
}
その後、次のように使用できます。
string original = "abcdefghijklmnopqrstuvwxyz";
string reversed = original.Reverse();
注: 拡張メソッドのコードは必要以上に複雑に見えるかもしれませんが、文字を結合する順序が逆にならないように正規化のトリックが必要です。この操作を行わないと、"Les Misérables" のような文字列は "selbaŕesiM seL" に逆になります ("e" ではなく "r" のアクセントに注意してください)。