无法读取和写入文件c#

时间:2016-11-20 19:16:46

标签: c# sorting alphabetical file-writing file-read

我目前正在尝试使用不按字母顺序排列的单词文件,重新排序单词以使它们按字母顺序排列(我尝试使用非内置排序方法),然后编写新排序的列表到一个新的txt文件(必须创建一个)。例如,假设txt文件中只有五个单词如下" dog bat apple rabbit cat"。我希望程序按字母顺序使用它们,然后创建一个保存该顺序的txt文件。截至目前,程序将遍历txt文件,但不会将重新排序的列表保存到新的txt文件中。保存到新文件中的是..." System.Collections.Generic.List`1 [System.String]" 说实话,我对c#还不是很精明,所以如果我的结构或编码不是很好,我会道歉。未命令的原始文件称为"混乱的英语FILTERED.ALL.txt",我试图写入的文件名为" english FILTERED.ALL.txt"。

static void Main(string[] args)
    {
        // declaring integer for minimum.
        int min = 0;
        // declare the list for the original file
        List<string> LinuxWords = new List<string>();
        List<string> lexicalOrder = new List<string>();
        // read the text from the file
        string[] lines = System.IO.File.ReadAllLines("jumbled english FILTERED.ALL.txt");
        string line = string.Empty;
        // seperate each word into a string
        //foreach (string line in lines)
        //{

            //add each word into the list.
            //LinuxWords.Add(line);
        //}

        for (int i = 0; i < lines.Length - 1; i++)
        {
            for (int j = i + 1; j < lines.Length; j++)
            {
                if (lines[i].Length < lines[j].Length)
                {
                    min = lines[i].Length;
                }
                else
                {
                    min = lines[j].Length;
                }
                for (int k = 0; k < min; k++)
                {
                    if (lines[i][k] > lines[j][k])
                    {
                        line = lines[i].ToString();
                        lines[i] = lines[j];
                        lines[j] = line;
                        break;
                    }
                    else if (lines[i][k] == lines[j][k])
                    {
                        continue;
                    }
                    else
                    {
                        break;
                    }
                }
            }
        }
        for (int i = 0; i < lines.Length; i++)
        {
            Console.WriteLine("The program is formatting the correct order");
            lexicalOrder.Add(lines[i]);

        }
        //lexicalOrder.ForEach(Console.WriteLine);
        //}
        //LinuxWords.ForEach(Console.WriteLine);

        File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + "english FILTERED.ALL.txt",
              lexicalOrder.ToString());



        // write the ordered list back into another .txt file named "english FILTERED.ALL.txt"
        // System.IO.File.WriteAllLines("english FILTERED.ALL.txt", lexicalOrder);
        Console.WriteLine("Finished");
    }

1 个答案:

答案 0 :(得分:0)

假设你的意思是你没有保存列表(如果那不是问题 - 请更具体) - 你需要改变

lexicalOrder.ToString()

类似

lexicalOrder.Aggregate((s1, s2) => s1 + " " + s2)