カテゴリ: VB.NET 更新日: 2026/02/05

VB.NETの配列・リストを結合・分割する方法を完全ガイド!初心者でもわかる操作術

VB.NETで配列やリストを結合・分割する方法
VB.NETで配列やリストを結合・分割する方法

先生と生徒の会話形式で理解しよう

生徒

「先生、別々に作った『買い物リスト』と『お土産リスト』を、一つの大きなリストにまとめる方法はありますか?」

先生

「ありますよ!VB.NETでは、配列やリストを『結合』したり、逆に必要な部分だけを『分割』したりする機能が備わっています。」

生徒

「バラバラのデータを一つにしたり、切り分けたりできれば便利そうですね。難しくないですか?」

先生

「基本さえ覚えれば簡単です。日常の作業に例えながら、結合と分割のテクニックを学んでいきましょう!」

1. 配列やリストの「結合」と「分割」とは?

1. 配列やリストの「結合」と「分割」とは?
1. 配列やリストの「結合」と「分割」とは?

プログラミングをしていると、バラバラになっているデータを一つにまとめたい(結合)ときや、逆に大きすぎるデータの一部だけを取り出したい(分割)ときが頻繁にあります。

例えば、前編と後編に分かれた動画のデータを一つに繋げたり、名簿の中から「最初の5人だけ」を抜き出したりする作業です。VB.NET(ヴィービー・ドットネット)では、コレクション(データの集まり)を自由自在に操るための命令が用意されています。これらをマスターすることで、データの加工が驚くほどスムーズになります。

2. リスト(List)を結合する「AddRange」

2. リスト(List)を結合する「AddRange」
2. リスト(List)を結合する「AddRange」

最も使いやすく、初心者の方向けなのが、List(リスト)の結合です。リストには AddRange(アド・レンジ)という命令があります。これは、今あるリストの末尾に、別のリストを「範囲(レンジ)ごと追加(アド)する」という意味です。

例えば、「野菜リスト」に「果物リスト」を結合して、一つの「食料品リスト」を作る場面をイメージしてください。


' 野菜リストを作成
Dim vegetables As New List(Of String) From {"キャベツ", "レタス"}
' 果物リストを作成
Dim fruits As New List(Of String) From {"リンゴ", "バナナ"}

' 野菜リストに果物リストを結合します
vegetables.AddRange(fruits)

' 結果を確認
For Each item In vegetables
    Console.WriteLine(item)
Next

実行結果は以下の通りです。


キャベツ
レタス
リンゴ
バナナ

このように、AddRange を使うだけで、二つの集まりをガッチャンコと一つに繋げることができます。

3. 配列(Array)を結合する簡単な方法

3. 配列(Array)を結合する簡単な方法
3. 配列(Array)を結合する簡単な方法

次に配列(はいれつ)の結合です。配列はリストと違い、後からサイズを変えるのが苦手な性質を持っています。しかし、VB.NETでは「LINQ(リンク)」という便利な機能の中にある Concat(コンキャット)という命令を使うことで、配列同士をスマートに結合できます。

Concat は英語で「連結する」という意味です。結合した結果を、新しい配列として受け取るのがポイントです。


' 前半の出席番号
Dim groupA() As Integer = {1, 2, 3}
' 後半の出席番号
Dim groupB() As Integer = {4, 5, 6}

' 二つの配列を結合して新しい配列を作ります
Dim allMembers() As Integer = groupA.Concat(groupB).ToArray()

' 結果を表示
Console.WriteLine(String.Join(", ", allMembers))

実行結果は以下の通りです。


1, 2, 3, 4, 5, 6

ここで使った ToArray(トゥ・アレイ)という命令は、結合したデータを「最後にもう一度しっかりとした配列の形に整える」という役割を持っています。

4. リストから一部分を抜き出す「GetRange」

4. リストから一部分を抜き出す「GetRange」
4. リストから一部分を抜き出す「GetRange」

今度は「分割」や「抜き出し」に注目しましょう。リストの一部だけを取り出したいときは、GetRange(ゲット・レンジ)を使います。

これは「〇番目から、〇個分だけ取ってきて!」という命令です。例えば、10人いる名簿から「3番目の人から2人分」を取り出すといった使い方ができます。プログラミングの数え方は0番から始まることを忘れないようにしましょう。


Dim numbers As New List(Of String) From {"A", "B", "C", "D", "E"}

' 1番目(B)から、3個分(B, C, D)を取り出します
Dim subList As List(Of String) = numbers.GetRange(1, 3)

For Each s In subList
    Console.WriteLine(s)
Next

実行結果は以下の通りです。


B
C
D

大きな塊を、扱いやすい小分けのパックにするような感覚ですね。

5. 配列を分割する「Skip」と「Take」の合わせ技

5. 配列を分割する「Skip」と「Take」の合わせ技
5. 配列を分割する「Skip」と「Take」の合わせ技

配列を分割する場合、Skip(スキップ:飛ばす)と Take(テイク:取る)という命令を組み合わせると非常に分かりやすくなります。

「最初の2つを飛ばして、その後の3つを取る」といった日本語に近い感覚でコードが書けます。これも先ほどのLINQという機能の一部です。


Dim original() As String = {"月", "火", "水", "木", "金", "土", "日"}

' 最初の5つを飛ばして、残りの2つを取る(土日だけ抽出)
Dim weekend() As String = original.Skip(5).Take(2).ToArray()

For Each day In weekend
    Console.WriteLine(day & "曜日")
Next

実行結果は以下の通りです。


土曜日
日曜日

6. 文字列を分割して配列にする「Split」

6. 文字列を分割して配列にする「Split」
6. 文字列を分割して配列にする「Split」

少し応用編ですが、非常に実用的なのがSplit(スプリット)です。一つの長い文字列を、カンマ(,)やスペースで区切って、配列に分割します。

例えば、「ペン,ノート,消しゴム」という一つの文章を、それぞれ独立した「ペン」「ノート」「消しゴム」というデータに切り分けるときに使います。csvファイルなどのデータを読み込む際によく使われるテクニックです。

7. 結合・分割時に注意すべき「空のデータ」

7. 結合・分割時に注意すべき「空のデータ」
7. 結合・分割時に注意すべき「空のデータ」

データを結合したり分割したりする際、初心者がハマりやすいのが「空っぽのデータ」を扱ってしまったときのエラーです。

例えば、中身が何もないリストに対して「3つ分取ってきて」と命令すると、パソコンは「そんなものはないよ!」とパニックを起こしてエラー(例外)を発生させます。作業をする前に、If文を使って「中身がちゃんとあるかな?」と確認するクセをつけると、より壊れにくい丈夫なプログラムになります。

8. パフォーマンスを意識した使い分け

8. パフォーマンスを意識した使い分け
8. パフォーマンスを意識した使い分け

結合や分割を何度も何度も、例えば数万回繰り返すようなプログラムを作る場合、配列よりもリストの方が有利なことが多いです。配列は結合のたびに新しい場所をメモリ(パソコンの作業机)に確保し直すため、少し時間がかかるからです。

逆に、一度結合してしまえばその後は内容を変えないという場合は、配列の方がメモリの節約になります。とはいえ、最初のうちはあまり難しく考えすぎず、「操作が簡単なのはリスト」と覚えておけば十分です。

9. 実践!複数のリストを一つにまとめる

9. 実践!複数のリストを一つにまとめる
9. 実践!複数のリストを一つにまとめる

最後に、複数のリストを順番に一つのリストへ統合していく実践的なイメージを掴みましょう。


Dim teamA As New List(Of String) From {"田中", "佐藤"}
Dim teamB As New List(Of String) From {"鈴木", "高橋"}
Dim teamC As New List(Of String) From {"伊藤", "渡辺"}

' 最終的な全員名簿
Dim allUsers As New List(Of String)

' 次々と追加して結合していく
allUsers.AddRange(teamA)
allUsers.AddRange(teamB)
allUsers.AddRange(teamC)

Console.WriteLine("合計人数は " & allUsers.Count & " 人です。")

このように、AddRange を繰り返すことで、いくつものグループを大きな一つの集まりにまとめることができます。

10. 結合と分割ができるとプログラミングが楽しくなる

10. 結合と分割ができるとプログラミングが楽しくなる
10. 結合と分割ができるとプログラミングが楽しくなる

配列やリストの結合・分割は、データを自由自在にレイアウトするための基礎体力のようなものです。

「このデータとこのデータをくっつけたらどうなるかな?」「ここだけ切り取って表示したいな」といったアイデアをすぐに形にできるようになります。最初は命令の名前を覚えるのが大変かもしれませんが、実際にパソコンで動かしてみると、その便利さに感動するはずです。まずは身近なデータを結合するところから、一歩ずつ進んでいきましょう!

カテゴリの一覧へ
新着記事
New1
ASP.NET
ASP.NETのクロスサイトスクリプティング(XSS)を完全解説!初心者でもわかる仕組みと対策
New2
VB.NET
VB.NETの文字列置換を完全解説!初心者でもわかるReplaceメソッドの使い方
New3
ASP.NET
ASP.NETのセキュリティ対策を完全ガイド!初心者でもわかるXSS・CSRF・SQLインジェクションの基本
New4
VB.NET
VB.NETで文字列を検索する方法をマスター!IndexOfとContainsの使い方を初心者向けに徹底解説
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETのコレクション操作でよくあるエラーと解決策!初心者向けトラブル脱出ガイド
No.2
Java&Spring記事人気No2
VB.NET
VB.NETで文字列を連結する方法を完全ガイド!&演算子とString.Concatの使い方
No.3
Java&Spring記事人気No3
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.4
Java&Spring記事人気No4
VB.NET
VB.NETの文字列操作を完全ガイド!初心者が覚えるべき基本と宣言方法
No.5
Java&Spring記事人気No5
ASP.NET
ASP.NETの認証と認可の違いを完全解説!初心者でもわかるOAuth・JWT・Azure ADの基本
No.6
Java&Spring記事人気No6
ASP.NET
ASP.NET MVCでセッションを使う方法を完全解説!初心者でもわかる状態管理入門
No.7
Java&Spring記事人気No7
VB.NET
VB.NETでコレクションをソートする方法を完全ガイド!並び替えの基本
No.8
Java&Spring記事人気No8
ASP.NET
ASP.NETの認証の仕組みを完全解説!初心者でもわかるログインの基本