List<E>.from 构造函数

List<E>.from(
  1. Iterable elements, {
  2. bool growable = true,
})

创建包含所有 elements 的列表。

elements 的迭代器提供元素的顺序。

所有 elements 应该是 E 的实例。

示例

final numbers = <num>[1, 2, 3];
final listFrom = List<int>.from(numbers);
print(listFrom); // [1, 2, 3]

elements 迭代器本身可以有任何元素类型,因此此构造函数可以用于向下转换 List,例如作为

const jsonArray = '''
  [{"text": "foo", "value": 1, "status": true},
   {"text": "bar", "value": 2, "status": false}]
''';
final List<dynamic> dynamicList = jsonDecode(jsonArray);
final List<Map<String, dynamic>> fooData =
    List.from(dynamicList.where((x) => x is Map && x['text'] == 'foo'));
print(fooData); // [{text: foo, value: 1, status: true}]

growable 为 true 时,此构造函数创建可增长列表;否则,它返回固定长度的列表。

实现

external factory List.from(Iterable elements, {bool growable = true});