Dart ListクラスのindexWhere()メソッドについてメモ書き。
indexWhere()メソッドは第1引数で指定した条件を満たす値を配列内で検索し、初めに見つかったインデックス位置を返す。第2引数で検索を開始するインデックス位置を指定できる。第2引数はオプション引数で、省略した場合は先頭から検索する。要素が存在しない場合は”-1″を返す。
コーディングで確認。先ずは第2引数を指定せずに実行。
void main() {
try {
final listTest = <String>[
"Apple",
"Orange",
"Banana",
"grape",
"Orange",
"grape",
"Orange",
"Orange"
];
print(listTest.indexWhere((element) => element.contains("Ora")));
} catch (e) {
print(e.toString());
}
}
実行結果。
“Ora”が含まれている最初のインデックス位置を返す。
1
次は第2引数で開始インデックス位置”5″を指定。
void main() {
try {
final listTest = <String>[
"Apple",
"Orange",
"Banana",
"grape",
"Orange",
"grape",
"Orange",
"Orange"
];
print(listTest.indexWhere((element) => element.contains("Ora"), 5));
} catch (e) {
print(e.toString());
}
}
実行結果。
6
最後は存在しない要素を指定。
void main() {
try {
final listTest = <String>[
"Apple",
"Orange",
"Banana",
"grape",
"Orange",
"grape",
"Orange",
"Orange"
];
print(listTest.indexWhere((element) => element.contains("Ri")));
} catch (e) {
print(e.toString());
}
}
実行結果。
-1
コメント