どうも、ちょげ(@chogetarou)です。
Mapの要素を条件で検索する方法を紹介します。
方法

Mapの要素を条件で検索するには、entriesプロパティとfirstWhereメソッドを使います。
まず、Mapからentriesプロパティにアクセスします。
そして、entriesからfirstWhereメソッドを呼び出します。
firstWhereメソッドの第1引数には要素の条件式を返す関数、第2引数「orElse」には見つからなかった際に返す値(MapEntry)を指定します。
map.entry.firstWhere((entry) => 条件式, orElse: ()=> MapEntry(・・・));
firstWhereメソッドは、Mapの先頭から最初にtrueを返した要素をMapEntryとして取得します。。
使用例
void main() {
var numbers = {
'One' : 1,
'Two' : 2,
'Three' : 3,
'Four' : 4,
'Five' : 5,
};
//キーがoを含み、値が2以上の要素を検索
var find = numbers.entries.firstWhere(
(entry) => entry.key.contains('o') || entry.value > 2,
orElse : () => MapEntry('Zero', 0)
);
print(find); //MapEntry(Two: 2)
}
コメント