Forhindre PowerShell i at 'unboxe' enkelt-element arrays: Effektive metoder

Hvordan kan det forhindres, at PowerShell implicit 'unboxer' en enkelt-element array til et enkelt objekt, og hvordan håndteres dette problem?

PowerShell implicit 'unboxer' en enkelt-element array til et enkelt objekt, hvilket kan undgås ved at bruge komma operator, array subexpression, kontrol af array længde eller .NET ArrayList.

Hvordan kan det forhindres, at PowerShell implicit 'unboxer' en enkelt-element array til et enkelt objekt, og hvordan håndteres dette problem?

PowerShell har en tendens til at 'unboxe' en enkelt-element array til et enkelt objekt, hvilket kan føre til uventede resultater i scripts. For at forhindre dette og håndtere problemet, kan du bruge følgende metoder:

  • Brug af komma operator: Ved at tilføje en komma foran arrayet, kan du sikre, at PowerShell behandler det som en array, selvom det kun indeholder et enkelt element.
    $array = ,$singleElement
  • Brug af array subexpression: Ved at bruge @() kan du tvinge PowerShell til at behandle output som en array.
    $array = @($singleElement)
  • Kontrol af array længde: Du kan kontrollere længden af arrayet og håndtere det derefter.
    if ($array.Count -eq 1) {
        $array = @($array)
    }
  • Brug af .NET ArrayList: En ArrayList fra .NET framework kan bruges til at sikre, at du arbejder med en liste, der ikke 'unboxer' enkelt-element arrays.
    [System.Collections.ArrayList]$arrayList = [System.Collections.ArrayList]::new()
    $arrayList.Add($singleElement)

Ved at anvende disse metoder kan du sikre, at PowerShell behandler dine arrays korrekt, selv når de kun indeholder et enkelt element.

Opret din første opgave på få minutter

Spar dig selv for besvær og kom igennem din to-do liste i dag

1

Beskriv din opgave

2

Modtag bud

3

Få løst din opgave

opgaver platform services

Møbelsamling

Hjælp med at samle Ikea klædeskab

opgaver platform services

Maler

Klargøring af lejlighed til flyttesyn

opgaver platform services

Flyttehjælp

Flytning af 150 kvm hus til Roskilde fra København

opgaver platform services

Havearbejde

Beskæring af 4 større træer

opgaver platform services

IT support

Geninstallering af windows + programmer

opgaver platform services

Elektriker

Installation af Sonos musikanlæg i hus

opgaver platform services

Rengøring

Ugentlig rengøring af lejlighed (114kvm)

opgaver platform services

Flyttehjælp

Flytning af 150 kvm hus til Roskilde fra København

opgaver platform services

Elektriker

Opsætning af lamper i stue og soveværelse

opgaver platform services

Catering

3-retters menu til 14 mennesker