使用键中的下划线对ruby哈希进行排序

时间:2012-10-02 12:15:31

标签: ruby ruby-1.8.7

我通常使用下面示例中给出的非常着名的sort方法对ruby哈希进行排序。但是当字符串键中有下划线时,这种情况非常糟糕。例如:

h = {"b" => 1, "a" => 2}
Hash[h.sort]

完美地对哈希进行排序。但是当散列类似于

h = {"b_d" => 1, "a_v" => 2}

我没有得到所需的排序顺序。这里要注意的是h.sort对哈希进行排序并生成Enumerable个对象。但是当我使用Hash[h.sort]将对象转换回Hash时,它会丢失命令。任何有关更好的流程的建议都会有所帮助。

注意:我正在使用Ruby 1.8.7,因此OrderedHash在我的镜头中并不多。

1 个答案:

答案 0 :(得分:2)

在Ruby 1.8.7中,只要您转换回Hash,就必然会丢失订单。你必须摆脱香草Hash才能让它发挥作用 - 也许试着保持Enumerable你从sort回来并尽可能长时间使用它?