android - 如何将2个for循环的数据存储在列表中?

标签 android azure kotlin kotlin-android-extensions

所以...我试图将来自 2 个不同 for 循环的数据存储到列表中。原因是我正在从 2 个不同的表中检索数据,因为 Azure-Android SDK 中尚未实现表连接。

目前,我已经,

for(results in tableOne) {
    val banana: String = results.asJsonObject.getAsJsonPrimitive("fruit").asString
}

for(results in tableTwo) {
        val yellow: String = results.asJsonObject.getAsJsonPrimitive("color").asString
    }

我创建了一个名为“Fruits”的类,它获取并设置我将在创建列表时实现它们

所以像 fruitList.add(Fruits("banana", "color"))

那么知道我该怎么做吗?

最佳答案

使用map将一种类型的列表更改为另一种类型。使用 zip 将两个列表的结果组合成一个新的单个列表。因此,您可以将 JSON 结果列表映射到字符串列表,然后将它们组合起来。

val fruitTypes = tableOne.map { it.asJsonObject.getAsJsonPrimitive("fruit").asString }
val colors = tableTwo.map { it.asJsonObject.getAsJsonPrimitive("color").asString }
val fruits = fruitTypes.zip(colors) { fruitType, color -> Fruit(fruitType, color) }

编辑:您可以一步更有效地完成此操作:

val fruits = tableOne.zip(tableTwo) { fruitTypeJson, colorJson -> 
    val fruitType = fruitTypeJson.asJsonObject.getAsJsonPrimitive("fruit").asString
    val color = colorJson .asJsonObject.getAsJsonPrimitive("color").asString
    Fruit(fruitType, color) 
}

关于android - 如何将2个for循环的数据存储在列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60942828/

相关文章:

android - Android 30 的来源在哪里

android - 如何从 Android MVVM 架构中的 LiveData 列表中获取第一个或(任何)元素?

android - 如何使用 Kotlin 和可待因结构在改造中拥有多个基本 URL

android - 在 ViewModel 中观察 LiveData 最佳实践

java - 创建它的 Activity 被销毁后,Android 线程会发生什么?

android - 如何在android低端设备上播放rtsp直播?

azure - 将安全组声明添加到自定义 Azure Active Directory 应用程序的 SAML token

azure - 新的 Azure 门户(无端点)如何从防火墙后面使用 RDP 连接到 VM

entity-framework - Azure Web 角色中的 Entity Framework DbContext

kotlin - livedata postvalue是否需要observeOn?