[Dart]リスト(配列)を条件で検索するには?

Dart

どうも、ちょげ(@chogetarou)です。

Dartで配列であるリストの要素を条件で検索する方法を紹介します。

スポンサーリンク

方法

コンピューター, ノート, オフィス, コード, プログラミング, プログラム

リストの要素を条件で検索するには、firstWhereメソッドもしくはwhereメソッドを使います。

firstWhereメソッド

firstWhereメソッドは、条件に合致する最初の要素を取得するメソッドです。

具体的な使い方としては、引数に条件式を返すコールバック関数を指定します。

コールバック関数で返す条件式で最初に「true」を返す要素を取得できます。

list.firstWhere((element) => 条件式)

firstWhereメソッドの引数のコールバック関数は、引数で配列の要素を取得することが出来ます。

使用例

void main() {
  var numbers = [1 , 2, 3, 4, 5];
  
  //3より大きい要素を取得
  print(numbers.firstWhere((element) => element > 3)); //4
}

where

whereメソッドは、条件に合致する要素をIterable型として全て取得するメソッドです。

具体的な使い方としては、引数に条件式を返すコールバック関数を指定します。

コールバック関数で返す条件式で「true」を返す要素をIterable型として全て取得できます。

//コールバック関数の条件式で最初に「true」を返した要素をリストとして全て取得
list.where((element) => 条件式)

また、whereメソッドで取得したIterableを、再びリストとして扱いたい場合は、toListメソッドでリストに変換します。

list.where((element) => 条件式).toList()

コールバック関数の引数では、配列から取り出した要素を受け取ることが出来ます。

使用例

void main() {
  var numbers = [1 , 2, 3, 4, 5];
  
  print(numbers.where((element) => element > 2).toList());
}
スポンサーリンク

まとめ

配列であるリストの要素を条件で検索するには、firstWhereメソッドもしくはwhereメソッドを使います。

コメント

タイトルとURLをコピーしました