如何根据 Smalltalk 中有序集合中的键进行排序

How to sort according to key in an Ordered Collection in Smalltalk

我正在尝试通过键对 OrderedCollection 进行排序,但这种方法 returns 只是键。我想同时获取键和值,但根据键进行排序。

aAssociation:= Association new.
aAssociation key:6 value:7.
aOrderedCollection:= OrderedCollection new.
aOrderedCollection addFirst: aAssociation.
aAssociation1:= Association new.
aAssociation1 key:5 value:9.
aOrderedCollection addLast: aAssociation1.
aAssociation2:= Association new.
aAssociation2 key:8 value:4.
aOrderedCollection addLast: aAssociation2.
aSortedCollection:= (aOrderedCollection sort: #key ascending) collect:#key. 

你在最后调用#collect:,这是你提取密钥的地方。不要那样做,你就完了。

也不要调用#sort:,它会修改您发送到的集合。使用#sorted:,它将return 一个排序的副本。它还适用于各种系列。