以 ascending/descending 顺序对文本文件中的数据进行排序的算法 C#

Algorithms to sort data from text files in ascending/descending order C#

好吧,让我试着解释一下我坚持的是什么以及我想做什么!我有多个 .txt 文件,里面都有大量数据(一个有星期几,另一个有日期,其他有其他与股票有关的数据)都是按降序排列的(所以所有的第一部分一个 .txt 文件的数据匹配另一个 .txt 文件中的第一条数据)。

我试图让我的代码读取文本文件的所有行(使用 File.ReadAllLines),将读取的数据放入一个大数组(如果可能),以便如果用户请求查看所有"Wednesday" 上的数据或 1999 年 1 月 3 日至 1999 年 3 月 31 日文本文件中的所有数据以及要在命令行上显示的数据(我添加了 table - 只是 运行 代码,你会明白我的意思)用户必须能够按天或日期搜索,并且需要能够使用算法将其排序为升序和降序,在我的脑海中,我知道我需要做的,但困难在于实现,我已经尝试了 Array.List()、Array.Sort()、快速排序(根本没用)等等经过 3 小时的反复试验后忘记了。

我对此还是很陌生,尤其是在算法方面,但希望我已经对其进行了解释,因此它至少是可以理解的,但足够开放,可以帮助其他人。如果没有任何意义,请提出问题,我会回答它们,我可能在写这篇文章时感到困惑 :P) 在此先感谢!

<!-- Run this code to see the table -->

<table style="width:100%">
  <tr>
    <td>Date</td>
    <td>Day</td> 
    <td>Open</td>
    <td>Close</td>
    <td>Difference</td> 
    <td>Volume</td>
  </tr>
  <tr>
    <td>01/03/1999</td>
    <td>Monday</td> 
    <td>312</td>
    <td>320</td>
    <td>...</td> 
    <td>...</td>
  </tr>
  <tr>
    <td>10/03/1999</td>
    <td>Wednesday</td> 
    <td>301</td>
    <td>289</td>
    <td>...</td> 
    <td>...</td>
  </tr>
  <tr>
    <td>19/03/1999/</td>
    <td>Friday</td> 
    <td>365</td>
    <td>342</td>
    <td>...</td> 
    <td>...</td>
  </tr>
</table>

不需要 编写或实施任何排序算法来执行此操作,这是将数据解析为对象形式的问题。

File.ReadAllLines 只是将文件的每一行转储到一个数组中,仅靠它本身不足以将数据组织成有意义的方式。您需要解析 HTML 以将文件反序列化为对象列表。

这将为您指明解析 HTML 的正确方向:What is the best way to parse html in C#?

您需要为每个数据字段创建 class 和 属性。

将文件转换为对象并验证数据包含在对象中后,您应该拥有这些项目的列表或数组。然后,您可以使用 LINQ 扩展方法 OrderBy 对数据进行排序。