リストをそのまま使用し、cutch
前述のように独自のメソッドを手動で追加して、重複を確認し、以下のような並べ替えを行うことができます。
import 'dart:html';
var someList = new List<String>();
String newItem = '';
void main() {
newItem = 'item 3';
if(!itemExistsInList(someList, newItem)){
someList.add(newItem);
sortList(someList);
}
// expected item 3
print(someList);
newItem = 'item 1';
if(!itemExistsInList(someList, newItem)){
someList.add(newItem);
sortList(someList);
}
// expected item 1, item 3
print(someList);
newItem = 'item 3';
if(!itemExistsInList(someList, newItem)){
someList.add(newItem);
sortList(someList);
}
// expected item 1, item 3. Same as previous as secondary item 3 was not added
print(someList);
}
// returns true if the specified item already exists in the specified list
// otherwise false
bool itemExistsInList(List<String> list, String item){
return list.some((v) => v.indexOf(item) != -1);
}
// sorts the list
void sortList(List<String> list){
list.sort((a, b) => a.compareTo(b));
}
sortList()
追加するたびに関数を呼び出す必要はありません。これはデモンストレーションのためだけに行いました。実際に必要なときにだけ呼び出すだけで十分です。
.sort()
で.some()
あり、 DART ライブラリ ドキュメント.indexOf
のコレクション セクションで詳しく説明されています。