You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kotlin中从MSetting列表高效填充entries与entryValues数组?

更简洁的Kotlin方式提取列表属性到数组

当然有更简洁的实现方式!Kotlin的标准库提供了一系列集合操作符,能帮你摆脱手动循环的繁琐,一行代码就能完成属性提取和数组转换。

首先要注意:你原来定义的entries和entryValues是用arrayOf()创建的固定大小数组,这种数组是没有add()方法的(调用会直接报错)。下面的写法直接生成符合需求的CharSequence数组,同时完成属性提取:

// 直接生成新的数组,类型自动推导为Array<CharSequence>
val entries = myList.map { it.name }.toTypedArray()
val entryValues = myList.map { it._id.toString() }.toTypedArray()

如果需要复用你原来声明的变量(保持var修饰),直接赋值即可:

entries = myList.map { it.name }.toTypedArray()
entryValues = myList.map { it._id.toString() }.toTypedArray()

代码解释

  • map { it.name }:遍历myList中的每个MSetting对象,把对象转换成它的name属性(String类型,而String天然实现了CharSequence,完全符合类型要求)。
  • map { it._id.toString() }:因为_id是Long类型,需要转成String才能作为CharSequence,这里直接在map操作里完成类型转换。
  • toTypedArray():把map生成的List转换成Array<CharSequence>,完美匹配你需要的数组类型。

这种写法比手动循环更简洁,可读性也更强,完全贴合Kotlin的简洁编程风格。

内容的提问来源于stack exchange,提问作者HelloCW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:37:20