如果我有一个雇员数组,我如何根据雇员的姓氏进行排序?
发布于 2009-10-07 00:09:57
应该是这样的:
employees sortBy: [:a :b | a lastName > b lastName]发布于 2009-10-31 09:02:40
如果我们做这些假设:
然后,您可以使用以下代码片段完成这项工作:
employees asSortedCollection: [ :a :b | a lastName < b lastName ]此代码将asSortedCollection: keyword消息发送到名为employees的数组实例。它将以方括号分隔的Block实例作为该关键字消息的参数进行传递。传入的Block有两个参数,分别名为a和b,并在|字符之前用前面的冒号字符进行标记。块中|字符后的代码将用于对employees数组中的所有元素进行排序,并将它们添加到SortedCollection类的新实例中。
但请注意,此代码最终返回一个新的集合,该集合包含同样由员工持有的相同项,但现在是按所需的顺序。实际上,新集合保留了排序条件(用作asSortedCollection: message参数的块实例),当您将来向该集合添加更多实例时,它们将自动以正确的排序顺序插入。
https://stackoverflow.com/questions/1528760
复制相似问题