如何在Kotlin的枚举类中自定义排序

时间:2018-11-02 08:02:09

标签: sorting enums kotlin

我在kotlin中确实有一个枚举类,其中我必须根据输入参数对它们进行不同的排序。

到目前为止,我已经定义了此类

enum class ProductItem constructor(
    val color,
    val price,
    val position
){

SHOES("red", "$", 2)
CAR("blue", "$$$$$", 1)
BOAT("green", "$$$$$$$$$$$$$", 3)
}

到目前为止,使用的是这样的简化代码:

it.sortedBy { it.ProductItem?.position })

我期望返回的枚举列表将按升序排序并显示:CAR, SHOES and BOAT,但仍显示SHOES, CAR, BOAT。似乎未考虑参数position。知道如何使用params位置对枚举列表进行排序

谢谢

1 个答案:

答案 0 :(得分:1)

从代码的外观来看,我怀疑您有一些类(例如Order),该类具有名为ProductItem的可选属性,该属性返回一个ProductItem枚举值。然后,您将获得这些Order对象的列表或数组,您想要按相关的position的{​​{1}}对其进行排序。正确吗?

如果是的话,下面是一些代码,显示了如何对订单列表进行排序...

ProductItem

能给您想要的东西吗?