在.net中反转字符串最有效的方法是什么?

在.net中反转字符串最有效的方法是什么?,.net,string,.net,String,我在.net中找不到实际返回字符串的String.Reverse()。(为什么没有?)在.net中反转字符串最有效的代码(创建的临时对象最少等)是什么?试试以下方法: public static string ReverseString(string s) { char[] arr = s.ToCharArray(); Array.Reverse(arr); return new string(arr); } 在.NET4.5中(我不知道可能更早),框架附带了一个扩展方

我在.net中找不到实际返回字符串的
String.Reverse()
。(为什么没有?)在.net中反转字符串最有效的代码(创建的临时对象最少等)是什么?

试试以下方法:

public static string ReverseString(string s)
{
    char[] arr = s.ToCharArray();
    Array.Reverse(arr);
    return new string(arr);
}
在.NET4.5中(我不知道可能更早),框架附带了一个扩展方法到名为
Reverse
String

Reverse()
返回可直接分配给
字符串的
IEnumerable

因此,这应该是可行的:

string one = "kayak";
string two = (string)(one.Reverse());

为.NET3.5添加了内置字符串反转。同时,MS偷偷地将反向字符串插入SQL server for SQL server 2008及更高版本。回想起来,我想我看到了答案:没有的原因是字符串应该做什么是不明确的。反向应该做什么,因此是一个惊喜和错误的来源:它是否应该以反向顺序返回字符串的所有UTF-16代码点?还是UTF-32码点?把标记和顺序结合起来怎么样?它是否应该返回unicode文本,该文本在视觉上看起来应该与原始字符串相似,但应该是反向的?这是哪种典型的代表?