Dart リスト内の重複を削除するにはどうすればいいですか? list.distinct()? 質問する

Dart リスト内の重複を削除するにはどうすればいいですか? list.distinct()? 質問する

セットをいじらずにリストから重複を削除するにはどうすればいいですか? list.distinct() のようなものはありますか? または list.unique() はありますか?

void main() {
  print("Hello, World!");

  List<String> list = ['abc',"abc",'def'];
  list.forEach((f) => print("this is list $f"));

  Set<String> set = new Set<String>.from(list);
  print("this is #0 ${list[0]}");
  set.forEach((f) => print("set: $f"));

  List<String> l2= new List<String>.from(set);
  l2.forEach((f) => print("This is new $f"));
}
Hello, World!
this is list abc
this is list abc
this is list def
this is #0 abc
set: abc
set: def
This is new abc
This is new def

セットかなり速くなったようです!! しかし、アイテムの順序が失われます :/

ベストアンサー1

使用しtoSetてからtoList

  var ids = [1, 4, 4, 4, 5, 6, 6];
  var distinctIds = ids.toSet().toList();

結果: [1, 4, 5, 6]

またはスプレッド演算子を使用する場合:

var distinctIds = [...{...ids}];

おすすめ記事