使用linq从输入文件中反转文本

时间:2014-03-17 12:44:26

标签: c# linq

我想使用c#和linq从input.txt中反转每个单词并显示输出文本,到目前为止我有一个输入单词并反转它的代码。

using System;
using System.Text;
using System.Linq; 

namespace program
{
    class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("String:");
            string name = Console.ReadLine();

            string output = new string(name.ToCharArray().Reverse().ToArray());

            Console.WriteLine(output);
        }
    }
}

2 个答案:

答案 0 :(得分:4)

string input = "I love programming";
string output = String.Join(" ",
                   input.Split().Select(w => new String(w.Reverse().ToArray())));
// I evol gnimmargorp

阅读文件很简单:

string input = File.ReadAllText("input.txt");

您还可以将单词反转移动到单独的方法中。这样您就可以在不触及其他逻辑的情况下更改algorithm of string reversing

private static string GetReversedString(string s)
{
    return new String(s.Reverse().ToArray());
}

获得反转输出将如下所示:

string output = String.Join(" ", input.Split().Select(GetReversedString));

如果要保留行:

string output = 
    String.Join(Environment.NewLine, 
                File.ReadLines().Select(l => 
                       String.Join(" ", l.Split().Select(GetReversedString))));

答案 1 :(得分:0)

反转代码可以在String的扩展方法中重构;接下来,应打开一个文本文件,将这些行拆分为单个单词,并将这些单词反向映射到控制台。