首页 文章

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

提问于
浏览
0

我在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 . 它似乎没有考虑到params position . 知道如何使用params位置对枚举列表进行排序

谢谢

1 回答

  • 0

    从代码的外观我怀疑你有一些类(例如 Order ),它有一个名为 ProductItem 的可选属性,它返回 ProductItem 枚举值 . 然后,您将拥有这些 Order 对象的列表或数组,您希望按相关 ProductItemposition 进行排序 . 那是对的吗?

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

    enum class ProductItem constructor(
            val color: String,
            val price: String,
            val position: Int
    ) {
        SHOES("red", "$", 2),
        CAR("blue", "$$$$$", 1),
        BOAT("green", "$$$$$$$$$$$$$", 3)
    }
    
    data class Order(val ProductItem: ProductItem? = null)
    
    val orders = listOf(Order(ProductItem.SHOES), Order(ProductItem.CAR), Order(ProductItem.BOAT))
    val sortedOrders = orders.sortedBy { it.ProductItem?.position }
    

    那会给你你想要的吗?

相关问题