入れ子のリストをフラットにする「expand」メソッド
Dartにおいて、入れ子になったリスト(リストのリスト)を単一の平らなリストに変換する場面はexpand
メソッドを使います。expand
は、引数に各要素に適用する関数を指定し、結果として得られるリストから、新しい1次元のリストを作成します。
このメソッドは、JavaScriptのflatMap
やC#のSelectMany
と同様の機能を提供し、リスト内のリストを単一のリストに「平らにする」処理を簡潔に書くことができます。
スポンサーリンク
expandメソッドの使い方
expand
メソッドの基本的な使い方を紹介します。
以下は、入れ子になったリストがあり、それをexpand
を用いて平らなリストに変換する例です。
void main() {
List<List<int>> nestedList = [
[1, 2, 3],
[4, 5],
[6, 7, 8, 9]
];
// expandメソッドを使ってリストをフラットにする
List<int> flatList = nestedList.expand((innerList) => innerList).toList();
print(flatList); // 出力: [1, 2, 3, 4, 5, 6, 7, 8, 9]
}
このコードでは、nestedList
という入れ子になった整数のリストがあります。expand
の引数に渡される関数で、それぞれの内部リスト(innerList
)をそのまま返します。
expand
の引数に渡される関数は、外側のリストの各要素(この場合は内部リスト)を受け取り、展開する要素のシーケンス(ここでは各内部リストの要素)を返します。結果として、次のイメージのように元のリストの構造をフラットな形に変換することができるわけです。
スポンサーリンク
まとめ
Dartにおいて、expand
メソッドはリストのリストを単一のリストに平坦化する非常に有効なメソッドです。
0 件のコメント:
コメントを投稿