extension KtListExtensions<T> on KtList<T> {
KtList<T> get duplicates => toMutableList()..removeAll(toSet().toList());
}
只需确保在pubspec中添加kt_dart即可:kt_dart: ^0.8.0
示例
final list = ['apples', 'oranges', 'bananas', 'apples'].toImmutableList();
final duplicates = list.duplicates; // should be ['apples'] in the form of an ImmutableList<String>
4条答案
按热度按时间8aqjt8rx1#
一个简单的方法是:
结果:
am46iovg2#
可能是一个更干净的解决方案与扩展。
通过声明:
那么您可以通过调用
List.getDupes()
来查找重复项请注意,函数
removeAll
不存在于我当前的Dart库中,以防您在他们以某种方式实现该函数时阅读该函数。还要记住
equals()
函数,在List<String>
中,["Rafa", "rafa"]
不包含重复项。如果确实想达到这种细化级别,就必须应用
distinctBy
函数:bvjxkvbb3#
我有一种感觉,拉斐尔的答案有类似于Kotlin的代码,所以我四处挖掘,看到这些函数是
kt_dart
库的一部分,它基本上得到Kotlin标准库并将其移植到Dart。我来自一个Kotlin背景,所以我经常使用这个包。如果你使用它,你可以简单地让扩展短这么多:
只需确保在pubspec中添加
kt_dart
即可:kt_dart: ^0.8.0
示例
jqjz2hbq4#