是的,让我试着解释一下我所坚持的以及我想要做的事情!我有多个.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;
答案 0 :(得分:1)
你不需要编写或实现任何排序算法来执行此操作,这是将数据解析为对象形式的问题。
File.ReadAllLines只是将文件的每一行转储到一个数组中,并且它本身不足以将数据组织成一种有意义的方式。您需要解析HTML以将文件反序列化为对象列表。
这将指出您在解析HTML方面的正确方向:What is the best way to parse html in C#?
您需要为每个数据字段创建一个带有属性的类。
将文件转换为对象并验证对象中包含数据后,您应该拥有List或这些项的数组。然后,您可以使用LINQ扩展方法OrderBy对数据进行排序。