我正在阅读编码恐怖片的旧帖子(http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html)这仍然是一个非常有趣的阅读,你会注意到很多提供答案的人实际上自己犯了很小的逻辑错误(大约30%)
无论如何,我想我会给自己设置一个小挑战,并在这里找到一堆fizzbuzz问题:Alternate FizzBuzz Questions
“Reverse a String” - 使用.net框架中的所有内置方法,有很多方法可以做到这一点。
我的问题是: 1. 如何使用LINQ反转字符串? 2.你能想出其他有趣的方法来反转C#中的字符串吗?
以下是我提出的两个例子 1.完全从头开始 2.使用可枚举的反向方法(1个班轮)
private static string FromScratchSimplified(string input)
{
// constructed reversed char array
char[] reversedCharArray = new char[input.Length];
for (int i = 0; i < input.Length; i++)
{
reversedCharArray[i] = input[input.Length-1-i];
}
// build string from char array
string reversedString = new String(reversedCharArray);
return reversedString;
}
private static string UsingEnumerableReverseMethod(string input)
{
// using Enumerable.Reverse method
return new String(input.Reverse().ToArray());
}
还有吗?
答案 0 :(得分:0)
new string(Enumerable.Range(1, input.Length).Select(i => input[input.Length - i]).ToArray())
答案 1 :(得分:0)
使其尽可能接近查询语法:
下式给出:
string aString = "please reverse me";
然后:
var reversed = new string((from c in aString.Select((value, index) => new { value, index })
orderby c.index descending
select c.value).ToArray());
Console.WriteLine(reversed);
的产率:
em esrever esaelp