PowerShell で配列からアイテムを削除する
PowerShell 配列は固定サイズであり、変更できません。 これは、配列内の項目を追加または削除できないことを意味します。
最良の代替手段は、配列の代わりに ArrayList
を使用することです。 ArrayList
は固定サイズの長さを持たず、変更することができます。
この記事では、PowerShell で ArrayList
を作成し、そこから項目を削除する方法を説明します。
PowerShell で Remove()
メソッドを使用して ArrayList
からアイテムを削除する
次の例では、アイテム Sunday
、Monday
、および Tuesday
を持つ ArrayList
$days
を作成します。
[System.Collections.ArrayList]$days = "Sunday", "Monday", "Tuesday"
Get-Type()
メソッドを使用して、変数の現在のデータ型を表示できます。
$days.GetType()
出力:
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True ArrayList System.Object
出力は、ArrayList
が正常に作成されたことを示しています。 以下のコマンドを実行すると、固定サイズかどうかを確認できます。
$days.IsFixedSize
出力:
False
False
が返されました。これは、サイズが固定されていないことを意味します。
それでは、新しい項目 Wednesday
を ArrayList
$days
に追加しましょう。 Add()
メソッドは、ArrayList
の末尾に新しいアイテムを追加します。
$days.Add("Wednesday")
新しいアイテムが追加されたインデックス番号を出力します。
3
以下を実行して、ArrayList
に追加された項目を確認します。
$days
出力:
Sunday
Monday
Tuesday
Wednesday
ご覧のとおり、Wednesday
が ArrayList
$days
に正常に追加されました。
ArrayList
から項目を削除するには、Remove()
メソッドを使用できます。
$days.Remove("Monday")
$days
出力:
Sunday
Tuesday
Wednesday
Remove()
メソッドは、指定された項目の最初の出現を ArrayList
から削除します。
インデックス番号を使用して特定のアイテムを削除することもできます。 RemoveAt()
メソッドを使用すると、ArrayList
から指定したインデックスのアイテムを削除できます。
次の例では、インデックス番号 2
のアイテムを ArrayList
$days
から削除します。
$days.RemoveAt(2)
$days
出力:
Sunday
Tuesday
1-10、5-9、12-22 など、特定の範囲から複数のアイテムを削除する場合があります。このような場合、RemoveAt()
メソッドを使用して、アイテムの範囲を削除できます。 ArrayList
。
このコマンドは、新しい ArrayList
$months
を作成します。
[System.Collections.ArrayList]$months = "Jan", "Feb", "Mar", "Apr", "May", "Jun", "July", "Aug", "Sep", "Oct", "Nov", "Dec"
次の例では、ArrayList
$months
からインデックス番号範囲 6-11
のアイテムを削除します。
$months.RemoveRange(6,5)
これらの項目が ArrayList
から削除されているかどうかを確認します。
$months
出力:
Jan
Feb
Mar
Apr
May
Jun
Dec
パラメータと混同している場合は、次の構文を使用します。
RemoveRange(index, count)
index
- 削除するアイテムの範囲の開始インデックス。count
- 開始範囲から削除するアイテムの数。