Flutterでリストから特定の条件で要素を検索する方法はいくつかあります。
以下にいくつかの一般的な方法を示します。
目次
forループを使う方法
forループを使う場合、リストの要素を1つ1つチェックして、検索したい値とマッチするかチェックします。
検索したい値が見つかれば、breakでループを終了します。
List<int> numbers = [1, 2, 3, 4, 5];
int searchValue = 3;
int? result;
for (int number in numbers) {
if (number == searchValue) {
result = number;
break;
}
}
print(result); // 3
whereメソッドを使う方法
whereメソッドは、条件に合致する要素を全てIterable
型で取得するメソッドです。
使い方は次の通りです。
list.where((element) => 条件式)
検索結果はIterable
型になるので、再びリストとして使うために、.toList()
メソッドを使用し、新しいリストを作成します。
list.where((element) => 条件式).toList()
以下は、whereメソッドを使った簡単な例です。
List<int> numbers = [1, 2, 3, 4, 5];
int searchValue = 3;
List<int> result = numbers.where((number) => number == searchValue).toList();
print(result); // [3]
firstWhereメソッドを使う方法
firstWhereメソッドは、条件に合致する最初の要素を取得するメソッドです。
使い方は次の通りです。
list.firstWhere((element) => 条件式, orElse:() => 要素が見つからなかった場合に返す値)
List<int> numbers = [1, 2, 3, 4, 5];
int searchValue = 3;
int result = numbers.firstWhere((number) => number == searchValue, orElse: () => -1);
print(result); // 3
indexWhereメソッドを使う方法
indexWhereメソッドは、引数に指定した条件に合致する要素のインデックスを返すメソッドです。
使い方は次の通りです。
list.indexWhere((element) => 条件式)
要素が見つからなかった場合、-1を返します。
List<int> numbers = [1, 2, 3, 4, 5];
int searchValue = 3;
int index = numbers.indexWhere((number) => number == searchValue);
if (index != -1) {
print(numbers[index]); // 3
} else {
print('Not found');
}
Comment