Aracılığıyla paylaş


Update-List

öğesine öğe ekler ve bir nesne koleksiyonu içeren bir özellik değerinden öğeleri kaldırır.

Syntax

Update-List
      [-Add <Object[]>]
      [-Remove <Object[]>]
      [-InputObject <PSObject>]
      [[-Property] <String>]
      [<CommonParameters>]
Update-List
      -Replace <Object[]>
      [-InputObject <PSObject>]
      [[-Property] <String>]
      [<CommonParameters>]

Description

Cmdlet bir nesnenin Update-List özellik değerindeki öğeleri ekler, kaldırır veya değiştirir ve güncelleştirilmiş nesneyi döndürür. Bu cmdlet, nesne koleksiyonları içeren özellikler için tasarlanmıştır.

Ekle ve Kaldır parametreleri, öğeleri koleksiyona tek tek ekler ve koleksiyondan kaldırır. Replace parametresi koleksiyonun tamamının yerini alır.

komutunda bir özellik belirtmezseniz, Update-List nesneyi güncelleştirmek yerine güncelleştirmeyi açıklayan bir nesne döndürür. Güncelleştirme nesnesini, cmdlet'ler gibi Set nesneleri değiştiren cmdlet'lere gönderebilirsiniz.

Bu cmdlet yalnızca güncelleştirilmekte olan özellik kullanan IList arabirimini Update-List desteklediğinde çalışır. Ayrıca, bir güncelleştirmeyi kabul eden tüm Set cmdlet'ler IList arabirimini desteklemelidir.

PowerShell ile yüklenen çekirdek cmdlet'ler bu arabirimi desteklemez. Cmdlet'in destekleyip desteklemediğini Update-Listbelirlemek için cmdlet Yardım konusuna bakın.

Bu cmdlet PowerShell 7'de yeniden tanıtıldı.

Örnekler

Örnek 1: Özellik değerine öğe ekleme

Bu örnekte, kartların Liste koleksiyonu nesnesi olarak depolandığı bir kart destesini temsil eden bir sınıf oluşturacağız. NewDeck() yöntemi, kart koleksiyonuna eksiksiz bir kart değerleri destesi eklemek için kullanırUpdate-List.

class Cards {

    [System.Collections.Generic.List[string]]$cards
    [string]$name

    Cards([string]$_name) {
        $this.name = $_name
        $this.cards = [System.Collections.Generic.List[string]]::new()
    }

    NewDeck() {
        $_suits = "`u{2663}","`u{2666}","`u{2665}","`u{2660}"
        $_values = 'A',2,3,4,5,6,7,8,9,10,'J','Q','K'
        $_deck = foreach ($s in $_suits){ foreach ($v in $_values){ "$v$s"} }
        $this | Update-List -Property cards -Add $_deck | Out-Null
    }

    Show() {
        Write-Host
        Write-Host $this.name ": " $this.cards[0..12]
        if ($this.cards.count -gt 13) {
            Write-Host (' ' * ($this.name.length+3)) $this.cards[13..25]
        }
        if ($this.cards.count -gt 26) {
            Write-Host (' ' * ($this.name.length+3)) $this.cards[26..38]
        }
        if ($this.cards.count -gt 39) {
            Write-Host (' ' * ($this.name.length+3)) $this.cards[39..51]
        }
    }

    Shuffle() { $this.cards = Get-Random -InputObject $this.cards -Count 52 }

    Sort() { $this.cards.Sort() }
}

Not

cmdlet'i Update-List güncelleştirilmiş nesneyi işlem hattına aktarır. İstenmeyen ekranı engellemek için Out-Null çıkışa kanal oluştururuz.

Örnek 2: Koleksiyon özelliğinin öğelerini ekleme ve kaldırma

Örnek 1'deki koda devam edersek, bir kart destesini ve iki oyuncunun tuttuğu kartları temsil etmek için Kartlar sınıfının örneklerini oluşturacağız. Cmdlet'ini Update-List oyuncuların ellerine kart eklemek ve kartları desteden çıkarmak için kullanırız.

$player1 = [Cards]::new('Player 1')
$player2 = [Cards]::new('Player 2')

$deck = [Cards]::new('Deck')
$deck.NewDeck()
$deck.Shuffle()
$deck.Show()

# Deal two hands
$player1 | Update-List -Property cards -Add $deck.cards[0,2,4,6,8] | Out-Null
$player2 | Update-List -Property cards -Add $deck.cards[1,3,5,7,9] | Out-Null
$deck | Update-List -Property cards -Remove $player1.cards | Out-Null
$deck | Update-List -Property cards -Remove $player2.cards | Out-Null

$player1.Show()
$player2.Show()
$deck.Show()

Deck :  4♦ 7♥ J♦ 5♣ A♣ 8♦ J♣ Q♥ 6♦ 3♦ 9♦ 6♣ 2♣
        K♥ 4♠ 10♥ 8♠ 10♦ 9♠ 6♠ K♦ 7♣ 3♣ Q♣ A♥ Q♠
        3♥ 5♥ 2♦ 5♠ J♥ J♠ 10♣ 4♥ Q♦ 10♠ 4♣ 2♠ 2♥
        6♥ 7♦ A♠ 5♦ 8♣ 9♥ K♠ 7♠ 3♠ 9♣ A♦ K♣ 8♥

Player 1 :  4♦ J♦ A♣ J♣ 6♦

Player 2 :  7♥ 5♣ 8♦ Q♥ 3♦

Deck :  9♦ 6♣ 2♣ K♥ 4♠ 10♥ 8♠ 10♦ 9♠ 6♠ K♦ 7♣ 3♣
        Q♣ A♥ Q♠ 3♥ 5♥ 2♦ 5♠ J♥ J♠ 10♣ 4♥ Q♦ 10♠
        4♣ 2♠ 2♥ 6♥ 7♦ A♠ 5♦ 8♣ 9♥ K♠ 7♠ 3♠ 9♣
        A♦ K♣ 8♥

Çıkış, kartların oyunculara dağıtılabilmesi için destenin durumunu gösterir. Her oyuncunun desteden beş kart aldığını görebilirsiniz. Son çıkış, kartları oyunculara dağıttığımızda destenin durumunu gösterir. Update-List destedeki kartları seçmek ve oyuncuların koleksiyonuna eklemek için kullanıldı. Ardından oyuncuların kartları kullanılarak Update-Listdesteden kaldırıldı.

Örnek 3: Tek bir komutta öğe ekleme ve kaldırma

Update-List , Parametre Ekle ve Kaldır'ı tek bir komutta kullanmanıza olanak tanır. Bu örnekte, Player 1 ve 6♦ öğesini atmak 4♦ ve iki yeni kart almak istiyor.

# Player 1 wants two new cards - remove 2 cards & add 2 cards
$player1 | Update-List -Property cards -Remove $player1.cards[0,4] -Add $deck.cards[0..1] | Out-Null
$player1.Show()

# remove dealt cards from deck
$deck | Update-List -Property cards -Remove $deck.cards[0..1] | Out-Null
$deck.Show()

Player 1 :  J♦ A♣ J♣ 9♦ 6♣

Deck :  2♣ K♥ 4♠ 10♥ 8♠ 10♦ 9♠ 6♠ K♦ 7♣ 3♣ Q♣ A♥
        Q♠ 3♥ 5♥ 2♦ 5♠ J♥ J♠ 10♣ 4♥ Q♦ 10♠ 4♣ 2♠
        2♥ 6♥ 7♦ A♠ 5♦ 8♣ 9♥ K♠ 7♠ 3♠ 9♣ A♦ K♣
        8♥

Parametreler

-Add

Koleksiyona eklenecek özellik değerlerini belirtir. Değerleri koleksiyonda görünecekleri sırayla girin.

Type:Object[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Güncelleştirilecek nesneleri belirtir. Ayrıca, güncelleştirilecek nesneyi öğesine Update-Listde yöneltebilirsiniz.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Property

Güncelleştirilmekte olan koleksiyonu içeren özelliği belirtir. Bu parametreyi atlarsanız, Update-List nesneyi değiştirmek yerine değişikliği temsil eden bir nesne döndürür.

Type:String
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Remove

Koleksiyondan kaldırılacak özellik değerlerini belirtir.

Type:Object[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Replace

Yeni bir koleksiyon belirtir. Bu parametre, özgün koleksiyondaki tüm öğeleri bu parametre tarafından belirtilen öğelerle değiştirir.

Type:Object[]
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Girişler

PSObject

Güncelleştirilecek Update-Listnesneleri öğesine yöneltebilirsiniz.

Çıkışlar

Objects or System.Management.Automation.PSListModifier

Update-List güncelleştirilmiş nesneyi veya güncelleştirme eylemini temsil eden bir nesne döndürür.