如何从Kotlin的Person类集合中提取名称列表?
Kotlin中从Person集合提取名称列表的实现方法
你可以用Kotlin标准库中的map函数实现和C# LINQ Select相同的功能,下面是几种适配你需求的写法:
转换为ArrayList类型
如果需要和原代码一致返回ArrayList<String>,有两种常用方式:
- 先通过
map转换元素,再包装为ArrayList:
val names = ArrayList(listOfPeople.map { it.name })
- 使用
mapTo直接将结果存入指定的ArrayList,效率更高:
val names = listOfPeople.mapTo(ArrayList()) { it.name }
获取只读List
如果不需要对结果集合执行添加、删除等可变操作,直接用map即可,它会返回一个只读的List<String>,和C#中ToList()返回的List功能类似:
val names = listOfPeople.map { it.name }
补充说明
Kotlin的map函数对应C# LINQ里的Select,作用是遍历集合中的每个元素,按照lambda表达式的逻辑转换元素并生成新集合。如果业务场景允许,推荐使用只读List的写法,这更符合Kotlin的设计习惯。
内容的提问来源于stack exchange,提问作者Mr. Anderson
相关产品推荐
相关产品推荐

