【问题标题】:Convert List<Class> to List<Class.property>将 List<Class> 转换为 List<Class.property>
【发布时间】:2021-08-05 10:18:13
【问题描述】:

我正在寻找一种优雅的方式来转换列表,我们删除对象信息并仅保留特定属性。

示例:List 变为 List 并保留属性fruitColor(一个字符串)。

【问题讨论】:

    标签: list flutter dictionary dart lambda


    【解决方案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 的内容 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    • 2019-06-05
    相关资源
    最近更新 更多