How to Remove the First and Last Item in an Array in PowerShell?

    Arrays are collections of items accessed by index, and sometimes, you may need to manipulate these collections by removing elements from either the beginning or the end of the array. In this PowerShell tutorial, we’ll explore how to remove the first and last item in an array in PowerShell.

    Removing the First Item from an Array in PowerShell

    Removing the first item from an array, often referred to as ‘shifting’ an array, can be done in a few ways in PowerShell.

    Method 1: Using Array Slicing

    PowerShell supports array slicing, which allows you to create a new array by selecting a subset of the original array:

    $array = 1, 2, 3, 4, 5
    # Remove the first item
    $array = $array[1..($array.Length - 1)]

    In this example, [1..($array.Length - 1)] creates a new array starting from the second element (index 1) to the last element.

    Method 2: Using the ArrayList Class

    Another way to remove the first item from an array in PowerShell is to use the System.Collections.ArrayList class, which provides a RemoveAt method:

    $array = 1, 2, 3, 4, 5
    # Convert array to ArrayList
    $arrayList = [System.Collections.ArrayList]$array
    # Remove the first item
    $arrayList.RemoveAt(0)
    # Convert back to array if needed
    $array = $arrayList.ToArray()
    $array

    The RemoveAt(0) method removes the first element of the ArrayList (at index 0) in PowerShell.

    After I executed the PowerShell script using VS code, you can see the output in the screenshot below.

    Removing the First Item from an Array in PowerShell

    Removing the Last Item from an Array in PowerShell

    Similarly, you may want to remove the last item from an array in PowerShell, often referred to as ‘popping’ an array.

    Method 1: Using Array Slicing

    Just as we did with the first item, we can use array slicing to remove the last item from the PowerShell array:

    $array = 1, 2, 3, 4, 5
    # Remove the last item
    $array = $array[0..($array.Length - 2)]
    $array

    Here, [0..($array.Length - 2)] creates a new array that includes all elements except the last one.

    You can see the output, after I executed the PowerShell script using VS code.

    Removing the Last Item from an Array in PowerShell

    Method 2: Using the ArrayList Class

    Using the ArrayList class, we can remove the last item from the PowerShell array by calling RemoveAt with the index of the last item:

    $array = 1, 2, 3, 4, 5
    $arrayList = [System.Collections.ArrayList]$array
    # Remove the last item
    $arrayList.RemoveAt($arrayList.Count - 1)
    $array = $arrayList.ToArray()
    $array

    $arrayList.Count - 1 gives us the index of the last item, which is removed with RemoveAt.

    Remove Both the First and Last Item from the PowerShell Array

    You can use the array slicing method to remove both the first and last elements from a PowerShell array.

    Array slicing allows you to select a continuous subset of an array. To remove both the first and last items from the PowerShell array, you would slice the array from the second element to the second-to-last element:

    $array = 1, 2, 3, 4, 5
    # Remove the first and last items
    $array = $array[1..($array.Length - 2)]
    $array

    In this example, 1 is the index of the second element (since arrays are zero-indexed), and $array.Length - 2 calculates the index of the second-to-last element. The new array $array now contains the elements 2, 3, 4.

    You can see the output in the screenshot below:

    Remove Both the First and Last Item from the PowerShell Array

    This method is simple and effective for arrays that trim both ends in one operation. Remember that this creates a new array, and the original array remains unchanged unless you overwrite it with the new one.

    Conclusion

    In this PowerShell tutorial, I have explained how to remove the first and last element from an array in PowerShell using various methods.

    • How to remove the first element from the PowerShell array?
    • How to remove the last element from a PowerShell array?
    • How to remove both the first and last element from an array in PowerShell?

    You may also like:

    >