MENU

【Flutter】Listの中から条件で要素を検索する方法

記事内に商品プロモーションが含まれる場合があります

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:() => 要素が見つからなかった場合に返す値)

上記の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');
}

Flutterが学べる書籍

Share

Comment

コメントする

目次