PowerShell'de Dizi Öğesini Dizine Göre Kaldırma
Son zamanlarda PowerShell'de bir dizi öğesini dizine göre kaldırma gereksinimi duydum. Bu PowerShell eğitiminde, PowerShell'de dizi öğelerini dizine göre kaldırmanın farklı yollarını açıklayacağım.
PowerShell'de bir öğeyi dizine göre kaldırmak için, öğe olmadan yeni bir dizi oluşturmak üzere dizi dilimleme yöntemini kullanabilirsiniz. Örneğin, $newArray=$array[0..($indexToRemove-1)] + $array[($indexToRemove+1)..($array.Length-1)] $indexToRemove konumundaki öğeyi kaldıracaktır. Alternatif olarak, daha doğrudan bir yaklaşım için ArrayList ve onun RemoveAt yöntemini kullanabilirsiniz: $arrayList.RemoveAt($indexToRemove). Her iki yöntem de belirli bir dizindeki bir öğeyi etkili bir şekilde diziden kaldırır.
PowerShell'de Dizi Öğesini Dizine Göre Kaldırma
Dizi, sayısal bir indeks tarafından erişilebilen öğeler topluluğudur. PowerShell'de dizilerin boyutu sabittir; yani bir diziyi tanımladıktan sonra boyutunu doğrudan artıramaz veya azaltamazsınız.
Şimdi PowerShell'de dizi öğelerini dizine göre kaldırmak için farklı yöntemler görelim.
Yöntem 1: Öğe Olmadan Yeni Bir Dizi Oluşturma
Bir diziden bir öğeyi dizine göre kaldırmanın bir yolu, PowerShell'de belirtilen dizindeki öğeyi hariç tutan yeni bir dizi oluşturmaktır. İşte bir örnek:
# Original array
$array = 1, 2, 3, 4, 5
# Index to remove
$indexToRemove = 2
# Create a new array excluding the index
$newArray = $array[0..($indexToRemove-1)] + $array[($indexToRemove+1)..($array.Length-1)]
# Display the new array
$newArray
Bu yöntem, iki alt dizi oluşturmak için dizi dilimlemeyi kullanır: biri kaldırılacak dizinden önce ve biri sonra. Bunlar daha sonra istenmeyen öğe olmadan yeni diziyi oluşturmak için birleştirilir.
Çıktıyı aşağıdaki ekran görüntüsünde görebilirsiniz:
Yöntem 2: ArrayList'i kullanma
Standart bir PowerShell dizisinin boyutu değişmez olduğundan, bir öğeyi doğrudan dizine göre kaldırmak istiyorsanız PowerShell ArrayList kullanabilirsiniz. ArrayList dinamik bir dizidir; yani isteğe bağlı olarak büyüyüp küçülebilir. İşte nasıl kullanılacağı:
# Create an ArrayList
$arrayList = New-Object System.Collections.ArrayList
$arrayList.AddRange(@(1, 2, 3, 4, 5))
# Index to remove
$indexToRemove = 2
# Remove the element at the index
$arrayList.RemoveAt($indexToRemove)
# Display the ArrayList
$arrayListRemoveAt yöntemi burada belirtilen dizindeki öğeyi doğrudan ArrayList'ten kaldırmak için kullanılır.
Yöntem 3: Where-Object Cmdlet'ini Kullanma
PowerShell'de bir öğeyi dizine göre kaldırmanın başka bir yöntemi de Where-Object cmdlet'inin kullanılmasını içerir. Bu cmdlet, öğeyi istediğiniz dizinde filtrelemenize olanak tanır:
# Original array
$array = 1, 2, 3, 4, 5
# Index to remove
$indexToRemove = 2
# Remove the element at the index using Where-Object
$newArray = $array | Where-Object { $_ -ne $array[$indexToRemove] }
# Display the new array
$newArrayBu yöntem, dizideki her öğeyi ($_) dizindeki kaldırılacak öğeyle karşılaştırır ve onu etkili bir şekilde filtreler.
Yukarıdaki kodu VS kodunu kullanarak çalıştırdıktan sonra çıktıyı aşağıdaki ekran görüntüsünde görebilirsiniz:
Yöntem 4: ForEach-Object'i bir Koşullu ile Kullanma
PowerShell'de diziden bir öğeyi dizine göre kaldırmanın başka bir yolu da koşullu bir ifadeyle ForEach-Object kullanmaktır. İşte bir örnek:
# Original array
$array = 1, 2, 3, 4, 5
# Index to remove
$indexToRemove = 2
# Initialize an empty array for the result
$newArray = @()
# Loop through the original array and exclude the index to remove
$array | ForEach-Object {
if ($array.IndexOf($_) -ne $indexToRemove) {
$newArray += $_
}
}
# Display the new array
$newArray
Bu yöntem, orijinal dizideki her öğe üzerinde yinelenir ve kaldırılacak dizinde olmadığı sürece onu yeni bir diziye ekler.
Referans için aşağıdaki ekran görüntüsüne göz atın:
Not: Öğeleri dizine göre kaldırırken, bir dizinin ortasından bir öğeyi kaldırırsanız sonraki öğelerin dizinlerinin değişeceğini unutmayın. Bir döngüdeki öğeleri kaldırıyorsanız bu sorunlu olabilir. Beklenmedik sonuçlardan kaçınmak için daima buna göre plan yapın.
Çözüm
PowerShell'de bir diziden bir öğenin dizine göre kaldırılması, ArrayList kullanma, Where-Object ile filtreleme veya ForEach- ile yineleme gibi çeşitli yöntemlerle gerçekleştirilebilir. Nesne vb.
Bu PowerShell eğitiminde, çeşitli yöntemler kullanarak PowerShell'de dizi öğelerinin dizine göre nasıl kaldırılacağını anlattım.


