PowerShell'de Diziyi ArrayList'e Dönüştürme [2 Yol]


Günlük görevlerden biri, bir diziyi PowerShell'de ArrayList'e dönüştürmektir. Dinamik veri yapılarıyla çalışmanız veya bellekteki verileri değiştirmeniz gerektiğinde yararlı olabilir. Ancak bir diziyi ArrayList'e nasıl dönüştüreceğimize dalmadan önce bu ikisi arasındaki farkı anlamak önemlidir.

Dizi, tek bir değişkende depolanan aynı türe sahip değerlerin koleksiyonudur. Dizilerin boyutu sabittir; bu, bir dizi oluşturulduktan sonra boyutunun değiştirilemeyeceği anlamına gelir.

Öte yandan ArrayList, gerektiğinde yeniden boyutlandırılabilen her türdeki değerlerin dinamik bir koleksiyonudur. Bir koleksiyona öğe eklerken veya koleksiyondan öğe çıkarırken yararlı olabilir.

Artık dizileri ve ArrayList'i bildiğinize göre, PowerShell'de dizileri ArrayList'e dönüştürmek için çeşitli yaklaşımları öğrenmeye devam edelim.

System.Collections.ArrayList'e yayınlamayı kullanma

Diziyi PowerShell'de ArrayList'e dönüştürmek için dizi nesnesini System.Collections.ArrayList'e yayınlayın.
Aşağıda bir örnek verilmiştir:

ArrayList Nesnesini Kullan:

$colours = @("Red", "Green", "Blue")
$arrayList = [System.Collections.ArrayList]$colours
Write-Host "ArrayList Contents:"
foreach ($colour in $arrayList) {
    Write-Host $colour
}

Çıkış:

ArrayList Contents:
Red
Green
Blue

Yeni ArrayList Nesnesini AddRange() yöntemiyle kullanma

PowerShell'de diziyi ArrayList'e dönüştürmek için:

  • New-Object cmdlet'ini kullanarak System.Collections.ArrayList türünde yeni nesne oluşturun.
  • $renkler dizisini $arrayList nesnesine eklemek için AddRange() yöntemini kullanın.

ArrayList Nesnesini Kullan:

$colours = @("Red", "Green", "Blue")
$arrayList = New-Object System.Collections.ArrayList
$arrayList.AddRange($colours)
Write-Host "ArrayList Contents:"
foreach ($colour in $arrayList) {
    Write-Host $colour
}

Çıkış:

ArrayList Contents:
Red
Green
Blue

Yukarıdaki kodda, $colours=@("Red", "Green", "Blue") satırı bir renk dizisi oluşturur ve bunu $colours. @() gösterimi PowerShell'de bir dizi oluşturur.

$arrayList=New-Object System.Collections.ArrayListsatırı yeni bir ArrayList nesnesi oluşturur ve onu $arrayList değişkenine atar. Yeni Nesne, .NET sınıfının yeni bir örneğini oluşturmak için kullanılır.

Bundan sonra$arrayList.AddRange($colours) satırı, $colours dizisinin içeriğini $arrayList ArrayList nesnesine AddRange() yöntemi. Bu yöntem ArrayList'e aynı anda birden fazla öğe ekler.

Write-Host cmdlet'leri, aşağıdaki satırların ArrayList içeriğinin çıktısını alacağını belirtmek için konsola bir ArrayList Contents: dizesi çıkarır.

Son olarak, $arrayList ArrayList nesnesindeki her öğe üzerinde yineleme yapmak için foreach döngüsünü kullandık ve bunu Write-Host kullanarak konsola çıktı olarak verdik. cmdlet'i kullanın. Döngü değişkeni $colour, işlenmekte olan geçerli öğeyi saklar.

Bir ArrayList nesnesine sahip olduğunuzda, verileri işlemek için onun yöntemlerini ve özelliklerini kullanabilirsiniz. Bu yöntemler aşağıdaki gibidir:

  1. Bir Öğe Ekle
  2. Bir Öğeyi Kaldırma
  3. Öğeleri Sıralayın
  4. Bir Sayıda Öğe Alın

Bu yöntemleri öğrenmeye devam edelim.

ArrayList Nesnesinin Add() Yöntemini Kullanın

ArrayList'e yeni bir öğe eklemek için Add() komutunu kullanma.

add() Yöntemini kullanın:

$colours = @("Red", "Green", "Blue")
$arrayList = New-Object System.Collections.ArrayList
$arrayList.AddRange($colours)
$arrayList.Add("Yellow")
Write-Host "ArrayList Contents:"
foreach ($colour in $arrayList) {
    Write-Host $colour
}

Çıkış:

ArrayList Contents:
Red
Green
Blue
Yellow

Yukarıdaki kod çerçevesi öncekine benzer ancak ArrayList'e bir öğe eklemek için add() yöntemini ekledi.

ArrayList Nesnesinin Remove() Yöntemini Kullanın

Mevcut bir öğeyi ArrayList'ten kaldırmak için Remove() yöntemini kullanın.

Remove() Yöntemini kullanın:

$colours = @("Red", "Green", "Blue", "Yellow")
$arrayList = New-Object System.Collections.ArrayList
$arrayList.AddRange($colours)
$arrayList.Remove("Blue")
Write-Host "ArrayList Contents:"
foreach ($colour in $arrayList) {
    Write-Host $colour
}

Çıkış:

ArrayList Contents:
Red
Green
Yellow

Yukarıdaki kod çiti önceki örneğe benzer, ancak ArrayList'teki bir öğeyi ortadan kaldırmak için Remove() yöntemini kullanır ve ArrayList'in güncellenmiş içeriğini Write-Host cmdlet'ini kullanarak konsol.

ArrayList Nesnesinin Sort() Yöntemini Kullanın

ArrayList'teki öğeleri sıralamak için Sort() yöntemini kullanın.

Sort() Yöntemini kullanın:

$colours = @("Red", "Green", "Yellow")
$arrayList = New-Object System.Collections.ArrayList
$arrayList.AddRange($colours)
$arrayList.Sort()
Write-Host "ArrayList Contents:"
foreach ($colour in $arrayList) {
    Write-Host $colour
}

Çıkış:

ArrayList Contents:
Green
Red
Yellow

Yukarıdaki kod, önceki iki örnekle benzer bir modeli izler, ancak bu durumda ArrayList'teki öğeleri artan sırada düzenlemek için Sort() yöntemi kullanılır. Daha sonra Write-Host cmdlet'i ArrayList'in güncellenmiş içeriğini konsola yazdırmak için kullanılır.

ArrayList Nesnesinin Count Özelliğini kullanın

ArrayList'te bulunan toplam öğelerin sayısını almak için count özelliğini kullanın.

Count Özelliğini Kullan:

$colours = @("Red", "Green", "Yellow")
$arrayList = New-Object System.Collections.ArrayList
$arrayList.AddRange($colours)
$count = $arrayList.Count
Write-Host "ArrayList Contents:"
foreach ($colour in $arrayList) 
{
    Write-Host $colour
}
Write-Host "The total number of elements in the ArrayList = $count"

Çıkış:

ArrayList Contents:
Red
Green
Yellow
The total number of elements in the ArrayList = 3

Yukarıdaki kod parçacığı önceki üç örnekle aynı modeli izler ancak bu durumda ArrayList'teki toplam öğe sayısını almak için Count özelliğini kullanır. Daha sonra Write-Host cmdlet'i konsolda güncellenen içerikleri görüntülemek için kullanılır.

Yukarıdaki çözümlere dayanarak, ArrayList nesnesi kolayca bir array'den bir ArrayList'e dönüştürülebilir ve onun yöntemleri ve özellikleri, verileri işlemek için kullanılabilir. Örneğin, ArrayList'e Add() yöntemini kullanarak bir öğe ekliyoruz, ilk öğeyi Remove() yöntemiyle kaldırıyoruz, sıralıyoruz Sort() yöntemini kullanarak öğeleri seçin ve Count özelliğiyle öğe sayısını alın.

Bunların hepsi PowerShell'de diziyi ArrayList'e nasıl dönüştüreceğinizle ilgili.

İlgili makaleler