有没有一种简单的方法可以从 Kotlin 的对象列表中获取数组?

Hel*_*oCW 1 android kotlin

我希望从MSetting的列表中得到一个name数组,目前我使用 Code A 来做,但是太复杂了,有没有简单的方法来做?

代码 A

  fun getName(aList:List<MSetting>): Array<CharSequence>{
        if (aList.isEmpty()){
            return emptyArray<CharSequence>()
        }else{
            var aa=Array<CharSequence>(aList.size,{""})
            for (index in aList.indices){
                aa[index]=aList[index].name
            }
            return aa
        }
    }
Run Code Online (Sandbox Code Playgroud)

数据

data class MSetting (
        var _id: Long,  
        var name: String,
        var createdDate: Long,
        var description: String
)
Run Code Online (Sandbox Code Playgroud)

zsm*_*b13 10

这里的解决方案是使用map然后toTypedArray

fun getName(aList: List<MSetting>): Array<CharSequence> {
    return aList.map { it.name }.toTypedArray()
}
Run Code Online (Sandbox Code Playgroud)


Gia*_*ran 5

使用map运算符

var names = msettings.map { it -> it.name}
Run Code Online (Sandbox Code Playgroud)

names是一个列表内容的所有值namefrommsettings

希望这可以帮助