You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将List<Thing>的属性a与嵌套List<String> b合并为单一List<String>?

解决方案

你可以用Dart的expand方法来实现,它比单纯的map更适合这种“单个元素转多个元素并扁平化”的场景,一行代码就能搞定:

首先假设你的Thing类定义如下:

class Thing {
  final String a;
  final List<String> b;

  Thing(this.a, this.b);
}

处理代码:

List<String> combinedList = myList.expand((thing) => [thing.a, ...thing.b]).toList();

原理说明

  • expand方法会遍历myList中的每个Thing对象,将每个对象转换为一个包含a属性和b列表所有元素的可迭代对象(这里用数组字面量+展开运算符...快速实现)
  • 它会自动把所有这些可迭代对象里的元素“平铺”成一个单一的可迭代集合,最后调用toList()转换成目标列表

如果你的b属性可能为null,可以加个空值处理避免报错:

List<String> combinedList = myList.expand((thing) => [thing.a, ...(thing.b ?? [])]).toList();

对比你原来的循环写法,这种函数式的方式更简洁,也更符合Dart的惯用写法。

内容的提问来源于stack exchange,提问作者Coltuxumab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 04:42:07