将 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) =&gt; e.fruitColor)]; 我认为这更晦涩难懂。至少,如果有人不知道“.toList”,很容易用谷歌搜索。 “[...“ 没那么多。 :) 另外,我认为传播必然会实现映射结果,然后将其再次复制到交给任务的列表中。浪费。 @RandalSchwartz 我们真的不知道在这种情况下 Dart 是否对 ... 运算符进行了一些优化。但是,是的,toList() 是最易读的解决方案。但我发现让人们了解... 运算符非常重要,这样他们就知道它的存在,以防万一。想要在你的新 List 中包含来自多个 Iterables 的内容 :)

以上是关于将 List<Class> 转换为 List<Class.property>的主要内容,如果未能解决你的问题,请参考以下文章

将 List<X> 转换为 DBDataReader

使用Lambda Stream 表达式,将 List<JavaBean> 转换为 List<Map>

如何将 List<class> 放入 JSONObject 然后读取该对象?

将 Single<List<Maybe<Book>>> 转换为 Single<List<Book>>

将一个mapList转换为beanList

无论传入什么数据都转换为列表