从升级/降序C#中对文本文件中的数据进行排序的算法

时间:2015-04-23 00:34:29

标签: c# sorting command-prompt

是的,让我试着解释一下我所坚持的以及我想要做的事情!我有多个.txt文件,里面都有大量的数据(一个包含一周中的几天,另一个包含日期,还有一些包含与股票相关的其他数据),这些数据都是降序排列的(所以第一块一个.txt文件的数据与另一个.txt文件中的第一个数据相匹配。

我正在尝试让我的代码读取文本文件的所有行(使用File.ReadAllLines),将读取数据放入一个大数组(如果可能),以便在用户请求查看所有数据时a"星期三"或者来自01/03/1999 - 31/03/1999的文本文件中的所有数据以及要在命令行上显示的数据(我添加了一个表 - 只需运行代码,您就会明白我的意思)用户必须能够按日或日期搜索,并且需要能够使用算法按升序和降序排序。在我的脑海中,我知道我需要做什么,但这是实施,这是斗争,我已经尝试过Array.List(),Array.Sort(),Quicksort(根本没有用)以及经过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>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

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

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

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

您需要为每个数据字段创建一个带有属性的

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