gpt4 book ai didi

sorting - Smalltalk:按两个标准对集合进行排序

转载 作者:行者123 更新时间:2023-12-02 09:26:55 27 4
gpt4 key购买 nike

如何在 Cincom VisualWorks 中按两个条件对集合进行排序?

示例:我有一个包含人员的 OrderedCollection,并且想要一个新的集合,首先按年龄对人员进行排序,然后如果年龄相同,则按姓名对人员进行排序。

希望你能听懂我的英语!谢谢..

最佳答案

Sean 的代码很好,但我更喜欢这样写,这样更能揭示意图,效率也更高:

people sort: [ :a :b |
a age < b age
or: [a age = b age and: [ a name < b name ] ]

这个想法是,如果项目a排序在项目b之前,排序 block 应该回答true。考虑两个键,如果任一其主键 (age) 较小,主键是相同,并且辅助键(name)更少。

这直接转换为上面的代码,并且可以轻松扩展到第三个或更多排序标准(例如,辅助键较小,或者相同但第三键较小)。

关于sorting - Smalltalk:按两个标准对集合进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8204826/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com