Set<E>.from 构造函数

Set<E>.from(
  1. Iterable elements
)

创建一个包含所有 elementsSet

所有 elements 应该是 E 的实例。这个可迭代的 elements 自身可以是任何类型,所以这个构造函数可以被用来向下转换一个 Set,例如

Set<SuperType> superSet = ...;
Set<SubType> subSet =
    Set<SubType>.from(superSet.where((e) => e is SubType));

创建的 Set 是一个 LinkedHashSet。因此,它认为相等的元素(使用 运算符 ==)是无法区分的,并要求它们具有兼容的 Object.hashCode 实现。

该集合与通过 LinkedHashSet<E>.from(elements) 创建的集合等价。

final numbers = <num>{10, 20, 30};
final setFrom = Set<int>.from(numbers);
print(setFrom); // {10, 20, 30}

实现

factory Set.from(Iterable elements) = LinkedHashSet<E>.from;