我必须按姓氏和名字对对象列表进行排序(如果多个对象有相同的姓氏)。我还必须对这些应用 Collator。
假设我可以对一个属性执行此操作:
val collator = Collator.getInstance(context.getResources().getConfiguration().locale)
myList.sortedWith(compareBy(collator, { it.lastName.toLowerCase() }))
但是是否也可以应用另一个限制来按名字排序?
最佳答案
您可以使用 thenBy
添加另一个排序条件:
val comparator =
compareBy(collator) { p: Person -> p.lastName.toLowerCase() }
.thenBy(collator) { p: Person -> p.firstName.toLowerCase() }
val result = myList.sortedWith(comparator)
关于kotlin - 如何通过两个属性和排序器对对象列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52284130/