示例:
string str = "I am going to reverse myself.";
string strrev = "I ma gniog ot esrever .flesym"; //An easy way to achieve this
我认为我需要迭代每个单词,然后迭代每个单词的每个字母。
我的方法运行良好。但我需要更简单/更短的方法。
C# 代码:
string str = "I am going to reverse myself.";
string strrev = "";
foreach (var word in str.Split(' '))
{
string temp = "";
foreach (var ch in word.ToCharArray())
{
temp = ch + temp;
}
strrev = strrev + temp + "";
}
Console.WriteLine(strrev); //I ma gniog ot esrever .flesym
Enumerable.Reverse
的碰撞真的是一个问题/不可取吗?你的函数除了延迟执行之外,也满足Enumerable.Reverse
的契约。而且,由于string
是不可变的并且已经评估了延迟执行是不可观察的。这是因为处理 Unicode 问题的此函数版本将无法满足Enumerable.Reverse
的契约吗? - CodesInChaosusing
指令可能会导致奇怪的情况。这比普通的重载解析更难跟踪 :) - Jon Skeet