将 List<Class> 转换为 List<Class.property>
Posted
技术标签:
【中文标题】将 List<Class> 转换为 List<Class.property>【英文标题】:Convert List<Class> to List<Class.property> 【发布时间】:2021-08-05 10:18:13 【问题描述】:我正在寻找一种优雅的方式来转换列表,我们删除对象信息并仅保留特定属性。
示例:List 变为 List 并保留属性fruitColor(一个字符串)。
【问题讨论】:
【参考方案1】:我想你正在寻找:
var listOfFruit = ...;
var listOfColors = listOfFruit.map((e) => e.fruitColor).toList();
【讨论】:
是的,没有它你仍然有一个惰性迭代器。 替代:var listOfColors = [...listOfFruit.map((e) => e.fruitColor)];
我认为这更晦涩难懂。至少,如果有人不知道“.toList”,很容易用谷歌搜索。 “[...“ 没那么多。 :) 另外,我认为传播必然会实现映射结果,然后将其再次复制到交给任务的列表中。浪费。
@RandalSchwartz 我们真的不知道在这种情况下 Dart 是否对 ...
运算符进行了一些优化。但是,是的,toList()
是最易读的解决方案。但我发现让人们了解...
运算符非常重要,这样他们就知道它的存在,以防万一。想要在你的新 List
中包含来自多个 Iterables 的内容 :)以上是关于将 List<Class> 转换为 List<Class.property>的主要内容,如果未能解决你的问题,请参考以下文章
使用Lambda Stream 表达式,将 List<JavaBean> 转换为 List<Map>
如何将 List<class> 放入 JSONObject 然后读取该对象?