-1

我正在阅读来自编码恐怖的旧帖子(http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html)它仍然是一个非常有趣的阅读,你会注意到很多提供答案的人实际上自己犯了一些小的逻辑错误(大约 30%)。

无论如何,我想我会给自己一个小挑战,并在这里发现了一堆 fizzbuzz 问题: Alternate FizzBu​​zz Questions

“反转字符串” - 使用 .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());
    }

还有吗?

4

2 回答 2

1
new string(Enumerable.Range(1, input.Length).Select(i => input[input.Length - i]).ToArray())
于 2013-06-08T07:17:31.267 回答
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
于 2013-06-08T11:50:25.613 回答