从txt文件排序数组

本文关键字:数组 排序 文件 txt | 更新日期: 2023-09-27 18:16:26

我有一个代码,它为txt文件中使用的所有字母创建了一个数组,名为"failas.txt":

using System;
using System.Linq;
using System.Globalization;
using System.Collections.Generic;
using System.Collections;
using System.IO;
using System.Text;
class Program
{
     static void Main()
     {
         string failas = "failas.txt";
         string rodymas = File.ReadAllText(failas, Encoding.GetEncoding(1257));
         Console.OutputEncoding = Encoding.UTF8;
         Console.WriteLine(rodymas);
         char[] masyvas = rodymas.ToArray().Reverse().Where(c => !char.IsWhiteSpace(c)).ToArray();
         foreach (char c in masyvas)
         {
     Console.Write(c + ",");
         }
         Console.ReadLine();
    }
}

它反转数组。然而,我不需要它反转,而是按字母顺序排序,并排除符号,如,, ., :, "等,基本上排除一切不是一个字母。

从txt文件排序数组

char[] masyvas = rodymas.ToArray().OrderBy(o=>o).Where(c => !char.IsWhiteSpace(c)).ToArray();

解决反向和字母顺序问题:

char[] masyvas = rodymas.ToArray().Where(c => !char.IsWhiteSpace(c)).ToArray();
masyvas.Sort(); //Will sort in place alphabetically. 

参见按字母顺序排序列表

对于字符,可以使用Regex

查看此解决方案
Regex rgx = new Regex("[^a-zA-Z0-9 -]");
str = rgx.Replace(str, "");

参见:如何从字符串中删除除破折号以外的所有非字母数字字符?

这一行呢?

        char[] masyvas = rodymas.Where(Char.IsLetter).OrderBy(Char.ToLower).ToArray();