2013-06-11 3 views
8

マップから選択したキーを削除するDartの慣用方法とは何ですか? 以下私は一時的なemptyListを使用してStringキーを保持しています。 清潔な方法がありますか?ダーツマップから選択したキーを削除

List<String> emptyList = new List<String>(); 
_objTable.keys.forEach((String name) { 
    if (_objTable[name].indices.isEmpty) { 
    emptyList.add(name); 
    print("OBJ: deleting empty object=$name loaded from url=$url"); 
    } 
}); 
emptyList.forEach((String name) => _objTable.remove(name)); 

答えて

8

あなたはこのような何かを行うことができます。魅力のように働いた

_objTable.keys 
    .where((k) => _objTable[k].indices.isEmpty) // filter keys 
    .toList() // create a copy to avoid concurrent modifications 
    .forEach(_objTable.remove); // remove selected keys 
+0

を、感謝を!私は部分を理解することができません.forEach(_objTable.remove)。 .forEach()に_objTable.remove関数を渡していますか? – Everton

+3

ここでは、listの各要素を呼び出す関数を渡します。基本的には、 '.forEach((name)=> _objTable.remove(name))'のようなものです。 –

関連する問題