ゲオルク:
私は、オブジェクトのマップを持っています:
Map<String, Transaction> _userIncome = {
'four': Transaction(amount: 450, date: DateTime.now(), title: 'Einkommen', accountType: 'timr', notes: 'joa' , icon: Icon(Icons.today,), id: 'kololdcd', repeat: 'always'),
'five': Transaction(amount: 60, date: DateTime.now(), title: 'Bruder', accountType: 'timr', notes: 'brother' , icon: Icon(Icons.today,), id: 'kolkfrcd', repeat: 'never'),
'six': Transaction(amount: 60, date: DateTime.now(), title: 'Rückerstattung', accountType: 'timr', notes: 'brother' , icon: Icon(Icons.today,), id: 'kolofkfrcd', repeat: 'never'),
};
そして私は、私はそのキーでエントリを削除できるように、私は(値が一意である)の値を知っていれば、キーを取得したいと思います:
_userIncome.remove(key);
私は与えられた値を持つエントリを識別することができます:
_userIncome.values
.where((t) => t.date.difference(datte).inDays == 0 && t.id == transactionId);
しかし、私はので、私は、エントリを削除することができ、一致するキーを取得する方法見当もつかない。またはその値によって削除ANエントリーする方法はありますか?
私はいくつかのアドバイスを聞くのが大好きだ:)
過酷なBhikadia:
単に使うremoveWhere
直接エントリを削除します。次の例であります:
_userIncome.removeWhere((k,t) => t.date.difference(datte).inDays == 0 && t.id == transactionId);
(むしろ、またはエントリ)のインデックスを取得するために、以下のような何かを実行します。
final key = _userIncome.entries
.firstWhere(
(entry) => entry.date.difference(datte).inDays == 0 && entry.id == transactionId,
orElse: () => null,
)
?.key;