VB.NETで配列の要素を削除する3つの方法!

VB.NET VB.NET

今回は、VB.NETで配列の要素を削除する方法について解説します。
下記の方法を解説しています。

・配列に空文字など、値をいれて削除されたように使う
・Array.Clearメソッドで要素をすべて削除する
・LINQを使用して要素を削除する(配列サイズも変更)

固定サイズの配列での要素削除

VB.NETの配列は固定サイズであり、要素の追加や削除が簡単にできません。
そのため、配列内の要素を削除する場合は、要素の代わりに空文字や0などの既定値を設定する方法があります。

Dim fruits() As String = {"apple", "peach", "melon"}
fruits(1) = "" ' 2番目の要素を削除します

For Each fruit As String In fruits
    If fruit <> "" Then
        Console.WriteLine(fruit) ' apple melon
    End If
Next

Console.WriteLine(fruits.Length) ' 3

このコードでは、fruits配列の中の要素を削除するために、削除したい要素の位置に空文字(“”)を代入しています。
その後、空文字でない要素のみをループして出力し、配列のサイズも変わっていないことを確認しています。

このように、if文を挟むことで空白文字(削除対象)以外に対して処理ができます。

配列の要素を全て削除する

Array.Clearメソッドを使用すると、配列の要素をすべて空(既定値)に設定することができます。
string配列の場合は、nullが入って、int配列の場合は0となります。

Dim fruits() As String = {"apple", "peach", "melon"}
Array.Clear(fruits)

For Each fruit As String In fruits
    Console.WriteLine(fruit)
Next

このコードでは、Array.Clearメソッドを使ってfruits配列のすべての要素をクリアしています。
その後、配列をループしてすべての要素が空になっていることを確認しています。

下記のように数値に対して使用すると、全ての値が「0」になります。

Dim numbers() As Integer = {10, 22, 50}
Array.Clear(numbers)

For Each number As Integer In numbers
    Console.WriteLine(number) ' 0
Next

このプログラムは数値「0」が3回出力されて、処理が終わります。

LINQを使用して要素を削除する(配列のサイズ変更)

LINQを使うことで、配列の要素を削除しつつ配列のサイズを変更することができます。

Dim drinks() As String = {"water", "beer", "cola"}
drinks = drinks.Where(Function(value) value <> "beer").ToArray()

For Each drink As String In drinks
    Console.WriteLine(drink)
Next

Console.WriteLine(drinks.Length) ' 2

このコードでは、LINQを使用して”beer”以外の要素だけを抽出し、新しい配列に格納しています。
その後、配列の要素をループして出力し、配列のサイズも変更されたことを確認しています。

foreach文でループして確認すると、「water」と「cola」が出力され、要素数が「2」になっていることが確認できます。

おわりに

今回は、VB.NETで配列の要素を削除する方法について解説しました。

配列の要素を削除する際には、要素を置き換えて削除したように使う方法や、Array.Clearメソッドを使用してすべての要素をクリアする方法がありました。
また、LINQを活用することで、配列の要素を削除しつつ配列のサイズを変更することも可能でした。

要素を削除する際には、元の配列が変更されることに注意してください。
配列の操作はプログラミングにおいて基本的かつ重要な部分です。適切な方法を選択し、効果的に配列を操作してください。

コメント

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