PowerShell'de Bir Diziden Öğeler Nasıl Kaldırılır?


PowerShell'deki bir dizideki öğeleri kaldırmanız mı gerekiyor? Bu yazıda çeşitli yöntemler ve örnekler kullanarak PowerShell'deki bir dizideki öğelerin nasıl kaldırılacağını araştıracağız.

PowerShell'deki bir dizideki öğeleri kaldırmak için, kaldırmak istediğiniz öğe olmadan veya doğrudan Kaldır yöntemini uygulayabileceğiniz bir ArrayList kullanarak yeni bir dizi oluşturun. Örneğin, dizinden 0 dizinindeki bir öğeyi kaldırmak için, ilk öğeyi atlamak üzere $array=$array[1..$array.length] kullanabilirsiniz. Alternatif olarak, diziyi bir ArrayList'e yayınlayabilir ve ardından [System.Collections.ArrayList]$arrayList=$array; gibi RemoveAt yöntemini kullanabilirsiniz. $arrayList.RemoveAt(0).

PowerShell'deki Dizideki Öğeleri Kaldırma

Şimdi PowerShell'de bir dizideki öğeleri çeşitli yöntemler kullanarak nasıl kaldıracağımızı görelim.

Aşağıdaki gibi birkaç öğeye sahip bir PowerShell dizisi örneği:

$myArray = @(1, 2, 3, 4, 5)

Bu, PowerShell'de beş tam sayı içeren bir dizi oluşturur.

1. $Null Atama Yöntemini Kullanma

PowerShell'deki bir diziden bir öğeyi kaldırmanın en basit yollarından biri, kaldırmak istediğiniz dizine $Null atamaktır:

$myArray = @(1, 2, 3, 4, 5)
$myArray[2] = $Null  # This will remove the item at index 2

Çıktıyı aşağıdaki ekran görüntüsünde görebilirsiniz.

Ancak bu, öğeyi tamamen kaldırmaz; öğeyi $Null değeriyle değiştirir. Öğeyi tamamen kaldırmak için filtrelemeniz gerekir:

$myArray = @(1, 2, 3, 4, 5)
$myArray = $myArray | Where-Object { $_ -ne $Null }

2. Yeni Bir Dizi Oluşturarak

Sabit boyutlu bir diziyle ilgileniyorsanız, bir öğeyi doğrudan PowerShell dizisinden kaldıramazsınız. Bunun yerine, kaldırmak istediğiniz öğeyi hariç tutan yeni bir dizi oluşturursunuz:

$myArray = @(1, 2, 3, 4, 5)
$myArray = $myArray[0..1] + $myArray[3..4]  # This will exclude the item at index 2

Bu yöntem, kaldırmak istediğiniz öğeyi atlayarak orijinal dizinin dilimlerini birleştirmeyi içerir.

Betiği VS kodunu kullanarak çalıştırdım ve çıktıyı aşağıdaki ekran görüntüsünde görebilirsiniz:

3. ArrayLists'i Kullanmak

Bir diziden öğe kaldırmanın başka bir yolu da, öğe ekleme ve kaldırma yöntemleri sağlayan dinamik bir dizi olan PowerShell ArrayList'i kullanmaktır:

$myArray = @(1, 2, 3, 4, 5)
$arrayList = New-Object System.Collections.ArrayList
$arrayList.AddRange($myArray)  # Add the items of $myArray to $arrayList
$arrayList.Remove(3)  # This will remove the first occurrence of the value 3

ArrayList'ler kendi başına diziler değildir, ancak öğe koleksiyonlarını dinamik olarak değiştirmeniz gerektiğinde çok yararlı olabilirler.

4. RemoveAt Yöntemini Kullanma

Kaldırmak istediğiniz öğenin dizinini biliyorsanız ArrayList'in RemoveAt yöntemini kullanabilirsiniz:

$arrayList.RemoveAt(2)  # This will remove the item at index 2

Bu yöntem ArrayLists'e özeldir ve normal PowerShell dizilerinde kullanılamaz.

PowerShell'deki dizilerden öğe kaldırmaya ilişkin bazı örneklere bakalım.

PowerShell Dizisindeki öğeleri Değere göre kaldırın

Bir öğeyi PowerShell dizisinden değerine göre kaldırmanız gerekebilecek bir durum olabilir. İşte 3 değerinin tüm oluşumlarını kaldıracak eksiksiz bir PowerShell betiği.

$myArray = @(1, 2, 3, 4, 5)
$myArray = $myArray | Where-Object { $_ -ne 3 }  # Removes all occurrences of the value 3

PowerShell'deki Dizideki Öğeleri Dizine Göre Kaldırma

İşte PowerShell'deki bir dizideki öğeleri dizinine göre kaldırmam gereken başka bir örnek.

$myArray = @(1, 2, 3, 4, 5)
$indexToRemove = 2
$myArray = $myArray[0..($indexToRemove-1)] + $myArray[($indexToRemove+1)..($myArray.Length-1)]

Çözüm

PowerShell'deki bir diziden öğeleri kaldırmak, sabit boyutlu bir diziyle mi çalıştığınıza veya daha dinamik özelliklere mi ihtiyacınız olduğuna bağlı olarak birkaç yolla yapılabilir.

Bu PowerShell eğitiminde, aşağıdaki yöntemleri kullanarak PowerShell'deki bir diziden bir öğenin nasıl kaldırılacağını açıkladım:

  1. $Null Atama Yöntemini Kullanma
  2. Yeni Bir Dizi Oluşturarak
  3. ArrayLists'i kullanma
  4. RemoveAt Yöntemini Kullanma

Aşağıdaki örnekleri de açıkladım:

  • PowerShell Dizisindeki öğeleri Değere göre kaldırın
  • PowerShell'deki Dizideki Öğeleri Dizine Göre Kaldırma

İlgili makaleler