有时我们需要过滤掉重复的列表项, 本篇文章就来介绍下Flutter/Dart 如何进行 List去重, 去除重复列表项.
实战开始
方法一: List与Set互转
基于Set集合的不可重复特性, 我们利用该特性可轻松解决:
void main() {
// 声明一个集合
var ids = [1, 1, 4, 4, 5, 6, 6];
// 进行去重, 存储去重后的集合
var distinctIds = ids.toSet().toList();
}
当然, 基于该思路还有更牛逼的写法:
var distinctIds = [...{...ids}];
[epcl_box type=“success”]这也许是最优雅的解决方案.[/epcl_box]
方法二: List与Set互转(保留顺序)
方案一虽然优雅, 但也不是完美的. 它无法保留顺序. 如果我们的需求对顺序有绝对的要求时, 就需要以下方法了:
import 'dart:collection';
void main() {
// 声明一个集合
List arr = ["a", "a", "b", "c", "b", "d"];
// 进行去重, 存储去重后的集合
List result = LinkedHashSet.from(arr).toList();
}
虽然不如方法一优雅, 但是其保留了顺序.
[epcl_box type=“success”]虽然不如方法一优雅, 但是其保留了顺序.[/epcl_box]