入れ子のリストをフラットにする「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 件のコメント:
コメントを投稿