Update-List
Hiermee voegt u items toe aan en verwijdert u items uit een eigenschapswaarde die een verzameling objecten bevat.
Syntaxis
		AddRemoveSet (Standaard)
	  
	Update-List
    [[-Property] <String>]
    [-Add <Object[]>]
    [-Remove <Object[]>]
    [-InputObject <PSObject>]
    [<CommonParameters>]
		ReplaceSet
	 
	Update-List
    [[-Property] <String>]
    -Replace <Object[]>
    [-InputObject <PSObject>]
    [<CommonParameters>]
Description
De Update-List cmdlet voegt items toe, verwijdert of vervangt items in een eigenschapswaarde van een object en retourneert het bijgewerkte object. Deze cmdlet is ontworpen voor eigenschappen die verzamelingen objecten bevatten.
De parameters Toevoegen en Verwijderen parameters toevoegen aan afzonderlijke items en deze uit de verzameling verwijderen. De parameter Replace vervangt de hele verzameling.
Als u geen eigenschap in de opdracht opgeeft, retourneert Update-List een hashtabel die de update beschrijft in plaats van het object bij te werken. Later kunt u deze wijzigingsset gebruiken om een lijstobject bij te werken.
Deze cmdlet werkt alleen wanneer de eigenschap die wordt bijgewerkt, ondersteuning biedt voor de IList-interface die Update-List gebruikt. Alle Set cmdlets die een update accepteren, moeten ook ondersteuning bieden voor de IList interface.
Deze cmdlet is opnieuw geïntroduceerd in PowerShell 7.
Voorbeelden
Voorbeeld 1: Items toevoegen aan een eigenschapswaarde
In dit voorbeeld maken we een klasse die een stapel kaarten vertegenwoordigt waarin de kaarten worden opgeslagen als een List verzamelingsobject. De methode NewDeck() gebruikt Update-Listom een volledige reeks kaartwaarden toe te voegen aan de Kaarten verzameling.
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() }
}
Opmerking
De Update-List cmdlet voert het bijgewerkte object uit naar de pijplijn. We geven de uitvoer door naar Out-Null om het ongewenste beeldscherm te onderdrukken.
Voorbeeld 2: Items van een verzamelingseigenschap toevoegen en verwijderen
Als u doorgaat met de code in voorbeeld 1, maken we exemplaren van de Cards klasse om een stapel kaarten en de kaarten van twee spelers weer te geven. We gebruiken de Update-List cmdlet om kaarten toe te voegen aan de handen van de spelers en om kaarten uit de deck te verwijderen.
$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♥
In de uitvoer ziet u de status van het deck voordat de kaarten aan de spelers werden uitgedeeld. U kunt zien dat elke speler vijf kaarten van het deck heeft ontvangen. De uiteindelijke uitvoer toont de status van het deck nadat de kaarten aan de spelers zijn geslagen. 
              Update-List werd gebruikt om de kaarten in het deck te selecteren en deze toe te voegen aan de collectie van de spelers. Vervolgens werden de kaarten van de spelers uit het deck verwijderd met behulp van Update-List.
Voorbeeld 3: Items toevoegen en verwijderen in één opdracht
              Update-List kunt u de parameters Toevoegen en  verwijderen in één opdracht gebruiken. In dit voorbeeld wil Player 1 de 4♦ en 6♦ verwijderen en twee nieuwe kaarten krijgen.
# 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♥
Voorbeeld 4: Een wijzigingsset toepassen op een lijstobject
Als u geen eigenschap opgeeft, retourneert Update-List een hashtabel die de update beschrijft in plaats van het object bij te werken. U kunt de hashtabel casten naar een System.PSListModifier object en de ApplyTo() methode gebruiken om de wijzigingsset toe te passen op een lijst.
$list = [System.Collections.ArrayList] (1, 43, 2)
$changeInstructions = Update-List -Remove 43 -Add 42
$changeInstructions
Name                           Value
----                           -----
Add                            {42}
Remove                         {43}
([pslistmodifier]($changeInstructions)).ApplyTo($list)
$list
1
2
42
Parameters
-Add
Hiermee geeft u de eigenschapswaarden op die moeten worden toegevoegd aan de verzameling. Voer de waarden in de volgorde in waarin ze moeten worden weergegeven in de verzameling.
Parametereigenschappen
| Type: | Object[] | 
| Default value: | None | 
| Ondersteunt jokertekens: | False | 
| DontShow: | False | 
Parametersets
					AddRemoveSet 
					
				  
				| Position: | Named | 
| Verplicht: | False | 
| Waarde uit pijplijn: | False | 
| Waarde uit pijplijn op eigenschapsnaam: | False | 
| Waarde van resterende argumenten: | False | 
-InputObject 
		Hiermee geeft u de objecten die moeten worden bijgewerkt. U kunt het object ook doorsluisen om te worden bijgewerkt naar Update-List.
Parametereigenschappen
| Type: | PSObject | 
| Default value: | None | 
| Ondersteunt jokertekens: | False | 
| DontShow: | False | 
Parametersets
(All)
| Position: | Named | 
| Verplicht: | False | 
| Waarde uit pijplijn: | True | 
| Waarde uit pijplijn op eigenschapsnaam: | False | 
| Waarde van resterende argumenten: | False | 
-Property
Hiermee geeft u de eigenschap op die de verzameling bevat die wordt bijgewerkt. Als u deze parameter weglaat, retourneert Update-List een object dat de wijziging aangeeft in plaats van het object te wijzigen.
Parametereigenschappen
| Type: | String | 
| Default value: | None | 
| Ondersteunt jokertekens: | False | 
| DontShow: | False | 
Parametersets
(All)
| Position: | 0 | 
| Verplicht: | False | 
| Waarde uit pijplijn: | False | 
| Waarde uit pijplijn op eigenschapsnaam: | False | 
| Waarde van resterende argumenten: | False | 
-Remove
Hiermee geeft u de eigenschapswaarden die uit de verzameling moeten worden verwijderd.
Parametereigenschappen
| Type: | Object[] | 
| Default value: | None | 
| Ondersteunt jokertekens: | False | 
| DontShow: | False | 
Parametersets
					AddRemoveSet 
					
				  
				| Position: | Named | 
| Verplicht: | False | 
| Waarde uit pijplijn: | False | 
| Waarde uit pijplijn op eigenschapsnaam: | False | 
| Waarde van resterende argumenten: | False | 
-Replace
Hiermee geeft u een nieuwe verzameling op. Deze parameter vervangt alle items in de oorspronkelijke verzameling door de items die door deze parameter zijn opgegeven.
Parametereigenschappen
| Type: | Object[] | 
| Default value: | None | 
| Ondersteunt jokertekens: | False | 
| DontShow: | False | 
Parametersets
					ReplaceSet 
					
				 
				| Position: | Named | 
| Verplicht: | True | 
| Waarde uit pijplijn: | False | 
| Waarde uit pijplijn op eigenschapsnaam: | False | 
| Waarde van resterende argumenten: | False | 
CommonParameters
Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.
Invoerwaarden
PSObject
U kunt het object doorsluisen dat moet worden bijgewerkt naar deze cmdlet.
Uitvoerwaarden
Hashtable
Deze cmdlet retourneert standaard een hashtabel die de update beschrijft.
Object
Wanneer u de parameter eigenschap opgeeft, retourneert deze cmdlet het bijgewerkte object.