如何使用 Dart / Flutter 中的列表从列表中删除重复元素?
Posted
技术标签:
【中文标题】如何使用 Dart / Flutter 中的列表从列表中删除重复元素?【英文标题】:How to remove duplicate elements from a list using lists in Dart / Flutter? 【发布时间】:2020-12-14 01:07:52 【问题描述】:如何从 Dart / Flutter 中的列表中删除重复项?
.toSet().toList()
不起作用。
例如:
List one = [
[
[6, 51],
[2, 76]
],
[
[6, 51],
[2, 76]
],
[
[5, 66],
[4, 96]
]
]
应该是:
List two = [
[
[6, 51],
[2, 76]
],
[
[5, 66],
[4, 96]
]
]
【问题讨论】:
【参考方案1】:我希望这有效。同时导入'dart:convert';
List two =
one.map((f) => f.toString()).toSet().toList()
.map((f) => json.decode(f) as List<dynamic>).toList();
【讨论】:
【参考方案2】:效率不是很高,但这可以工作
void main()
List<List<List<int>>> one = [
[
[6, 51],
[2, 76]
],
[
[6, 51],
[2, 76]
],
[
[5, 66],
[4, 96]
]
];
print(one);
print(one.removeDuplicates());
extension ListExtension<T> on List<T>
bool _containsElement(T e)
for (T element in this)
if (element.toString().compareTo(e.toString()) == 0) return true;
return false;
List<T> removeDuplicates()
List<T> tempList = [];
this.forEach((element)
if (!tempList._containsElement(element)) tempList.add(element);
);
return tempList;
【讨论】:
以上是关于如何使用 Dart / Flutter 中的列表从列表中删除重复元素?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Flutter dart 的列表中的循环内附加数据?
(Flutter/Dart) 如何修复使用 [ ] 显示列表中的数字
在 Flutter 中使用 Dart,如何添加到地图列表中的地图列表中?