[Dart]リスト(List)をマップ(Map)に変換するには?

Dart

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

リストをマップに変換する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

リストをマップに変換する方法は、2つあります。

fromIterable

1つは、MapのfromIterableを使う方法です。

まず、MapからfromIterableを呼び出します。

次に、fromIterableの第1引数で変換対象のリストを指定します。

また、第2引数「key」に変換後のマップのキー、第3引数「value」に変換後の値をコールバック関数で返します。

最後に、fromIterableの結果を、変数に代入します。

var map = Map.fromIterable(
    list, key: (v) => key, value: (v) => value
  );

fromIterableの引数「key」と引数「value」のコールバック関数は、引数でリストの要素を受け取ります。

使用例

void main() {
  var numbers = [1, 2, 3, 4, 5];
  
  var map = Map.fromIterable(
    numbers, key: (v) => v.toString(), value: (v) => v
  );
  
  print(map); //{1: 1, 2: 2, 3: 3, 4: 4, 5: 5}
}

for-in

もう1つは、for-inループを使う方法です。

まず、変数に「{}」を代入します。

そして、「{}」内でリストをfor-inループします。

for-inループで、キーと値のセットを指定します。

var map = { for (var v in numbers) key : value };

使用例

void main() {
  var numbers = [1, 2, 3, 4, 5];
  
  var map = { for (var v in numbers) v.toString() : v};
  
  print(map); //{1: 1, 2: 2, 3: 3, 4: 4, 5: 5}
}

まとめ

リストをマップに変換する方法は、次の2つです。

  • fromIterableを使う方法
  • for-inループを使う方法

コメント

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