List<E>.from 构造函数

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

创建一个包含所有 elements 的列表。

elementsIterator 提供了元素的顺序。

所有 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});