我目前正在尝试使用不按字母顺序排列的单词文件,重新排序单词以使它们按字母顺序排列(我尝试使用非内置排序方法),然后编写新排序的列表到一个新的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");
}
答案 0 :(得分:0)
假设你的意思是你没有保存列表(如果那不是问题 - 请更具体) - 你需要改变
lexicalOrder.ToString()
类似
lexicalOrder.Aggregate((s1, s2) => s1 + " " + s2)