広告スペース(バナー)
#️⃣C# レッスン
基本文法の基礎8
データ構造とオブジェクト指向7
構文の基本を深める9
関数とデータ構造の応用9
アルゴリズムとテストの基礎8
文字列・数値操作の応用8
実務で役立つ機能8
アルゴリズム練習問題10
レッスン 42 / 68

配列の平坦化(flatten)

このレッスンでは、C#のSelectManyを使って入れ子になった配列を平坦化(flatten)する方法を学び、複雑なデータ構造をシンプルに扱う方法を理解することを目標にします。「C# SelectMany flatten 使い方」で調べている方向けです。

配列の中に入れ子になった配列があるとき、それを「平らな」1つの配列に展開することをflatten(平坦化)と呼びます。LINQの.SelectMany()を使うと1行で書けます。

サンプルコードでは、int[][] nestedという入れ子の配列に対してnested.SelectMany(x => x).ToArray()を実行することで、{1, 2, 3, 4, 5}という1つの配列に展開しています。x => xという単純なラムダ式が、各内側配列をそのまま展開する役割を果たしています。

初心者がよくつまずくのが、.Select()との違いです。.Select()だけでは配列の中に配列が残ったままになりますが、.SelectMany()を使うことで一段階平らにできる点を理解しておく必要があります。

実際の開発現場では、SelectManyはLINQの中でも特に強力なメソッドの1つで、多次元のツリー構造のデータを1つのリストにまとめたいときにも同じ考え方が応用できます。

📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください

🧪 このサイトではC#を直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。

🎯
ここまでできればゴール達成!
入れ子になったデータを、1つのまとまったリストに整理できるようになります。
広告スペース(バナー)
広告スペース(記事内)