【问题标题】:Sorting Group of Files Using HashTable - Visual Basic使用 HashTable 对文件组进行排序 - Visual Basic
【发布时间】:2012-01-25 15:32:15
【问题描述】:

如何使用Hashtable按值对目录中的文件组进行排序?

我将拥有 500 多个以下格式的文件:

prod_orders_XXX_.dat

XXX = 产品符号,长度可能不同。
= 日期和时间

同一 XXX 的多个文件可能具有不同的时间戳。

这里有一些例子:

prod_orders_abc_20122001083000.dat
prod_orders_abc_20122001083111.dat
prod_orders_xyz_20122001093157.dat
prod_orders_xyz_20122001083000.dat
prod_orders_abc_20122001163139.dat
prod_orders_abc_20122001093137.dat

我之前发布过类似的问题,但这次我需要专门使用 Hashtable。有人可以帮忙吗?

【问题讨论】:

标签: vb.net hashtable filesort


【解决方案1】:

这里有四个问题。

  1. 您根本不应该使用 untyped 哈希表。通用 Dictionary 是一个非常 更好的选择。
  2. 您没有分享如何确定每个文件名的。哈希表中的项目必须同时具有键和值。大概文件名是值,但我们没有关于密钥的信息。
  3. 您没有指定将使用什么标准来确定排序顺序。按时间戳排序?文件名?产品符号?有什么优先权?
  4. 哈希表是字典,未按定义排序。没有办法对它们进行排序。时期。故事结局。您可以以排序的方式迭代它们的内容,但不能强制它存储排序的项目,并且尝试这样做会破坏这些集合的良好性能优势。

【讨论】:

  • 实际上我想根据文件中提到的时间戳对文件名进行排序。我认为时间戳可以是关键,字符串部分可以是关键值。最后我们可以将键分配给arraylist,然后对数组进行排序并可以操作文件名的其余部分。但是当两个文件具有不同的产品和相同的时间戳时,我遇到了问题。我已将此场景发布为新问题。 [链接] (stackoverflow.com/questions/9033092/…)
  • 您再次使用无类型集合。除非您被困在 .Net 1.1 上,否则您没有充分的理由应该永远再次使用 ArrayList。 List 几乎总是首选。
  • 我只是在尝试有效的方法。感谢您对信息不足的回复和道歉。
猜你喜欢
  • 2012-02-16
  • 1970-01-01
  • 2016-07-27
  • 1970-01-01
  • 2021-05-31
  • 2011-05-19
  • 2023-03-29
  • 1970-01-01
  • 2012-11-24
相关资源
最近更新 更多