将两个不同的数据 class 列表合并到第三个 Kotlin

Merge two different data class lists in to the the third one Kotlin

我想在我的新数据中添加额外的字段 class 来自旧数据,它有一个额外的余额值字段。我已经创建了带有 ID 和值(余额)的数据 class 列表,我想将第一个数据 class 列表与第二个数据列表合并以生成第三个列表 - 类似于 sql 中的联合.

第一个数据class

data class Coin(
  val id: String,
  val price_usd: Double,
  val name: String,
  val rank: Int,
  val symbol: String
)

秒数据class

 data class CurrencyBalance(
     val id: String,
     val quantity: String
 )

目的是创建这种类型的数据class列表

data class CoinData(
  val id: String,
  val price_usd: Double,
  val name: String,
  val rank: Int,
  val symbol: String,
  val quantity: String
)

您正在寻找这样的东西吗?

fun convert(currencyBalances: List<CurrencyBalance>, coins: List<Coin>): List<CoinData> =
    currencyBalances.map { currencyBalance ->
        coins.firstOrNull { coin -> coin.id == currencyBalance.id }
            ?.let { coin -> CoinData(coin.id, coin.price_usd, coin.name, coin.rank, coin.symbol, currencyBalance.value) }
    }.filterNotNull()

我在这里假设 CurrencyBalance 中的字段称为 idvalue