Om Matriser

0 Comments
  • 08/26/2020
  • 14 minutter på å lese
    • S
    • s
    • c

Kort Beskrivelse

Beskriver matriser, som er data strukturer utviklet for å storecollections av elementer.

Lang Beskrivelse

En matrise er en datastruktur som er designet for å lagre en samling av elementer.Elementene kan være av samme type eller ulike typer.

Begynner i Windows PowerShell-3.,0, en samling av null eller ett objekt hassome egenskaper av matriser.

Opprette og initialisere en matrise

for Å opprette og initialisere en array, må du tilordne flere verdier til en variabel. Thevalues lagret i tabellen er separert med et komma, og atskilt fra thevariable navn av tilordningsoperatoren (=).,

For eksempel, for å opprette en array som heter $A som inneholder syv tall (int)verdier av 22, 5, 10, 8, 12, 9, og 80, skriv:

komma kan også brukes til å initialisere en enkelt element array ved å plassere thecomma før det enkelt element.

For eksempel, for å lage et enkelt element array som heter $B inneholder singlevalue av 7, skriv:

Du kan også opprette og initialisere en matrise ved hjelp av utvalg operatøren (..).,Følgende eksempel oppretter en array som inneholder verdiene 5 til 8.

Som et resultat, $C består av fire verdier: 5, 6, 7, og 8.

Når ingen data type er angitt, PowerShell skaper hver rekke som en objectarray (System.Gjenstand). For å fastslå datatypen til en matrise, bruk theGetType () – metoden., For eksempel, å bestemme data type $Aarray, skriv:

for Å lage et sterkt skrevet array, som er en array som kan inneholde onlyvalues av en bestemt type, kastet de variable som en matrise, slik asstring, lange, eller int32. Å kaste en rekke, foran thevariable navn med en matrise står i parentes., For eksempel, for å skape a32-bit integer array som heter $ia inneholder fire heltall (1500, 2230, 3350, – og 4000), skriv:

Som et resultat, $ia array kan bare inneholde heltall.

Du kan lage matriser som er støpt til en støttet skriver i Microsoft.NET Rammeverket. For eksempel, objekter som Get-Process henter torepresent prosesser er av Systemet.Diagnose.Prosessen type., For å skape astrongly skrevet utvalg av prosessen objekter, skriv inn følgende kommando:

array sub-uttrykk operatør

array sub-uttrykk operatør lager en matrise fra uttalelser insideit. Uansett uttalelse inne operatøren gir operatøren willplace det i en matrise. Selv om det er null eller ett objekt.

syntaksen av tabellen operatør er som følger:

Du kan bruke array-operatoren for å opprette en matrise av null eller ett objekt., Forexample:

array operatør er nyttig i skriptene når du får objekter, men ikke vet hvor mange ting du få. For eksempel:

For mer informasjon om matrisen sub-uttrykk operatør, seeabout_Operators.

få Tilgang til og bruke array-elementer

Lese en matrise

Du kan referere til en matrise ved hjelp av sin variabelnavn. For å vise alle theelements i matrisen, type array-navn., For eksempel, forutsatt $a er anarray inneholder naturlige tallene 0, 1, 2, til 9; å skrive:

Du kan se elementene i en array ved hjelp av en indeks, begynnelsen atposition 0. Legge indeksen nummer i parentes., For eksempel, for å vise thefirst element i $a array, skriv:

for Å vise den tredje elementet i $a array, skriver du inn:

Du kan hente en del av matrisen ved hjelp av et utvalg operatør for indeksen. Forexample, for å hente den andre til femte elementene i matrisen, du wouldtype:

Negative tall telle fra slutten av tabellen., For eksempel, «-1» viser til siste del av tabellen. For å vise siste tre elementer i thearray, i indeks stigende rekkefølge, skriver du:

Hvis du skriver negative indekser i synkende rekkefølge, din utgang endringer.

Imidlertid være forsiktig når du bruker denne notasjonen. Notasjonen sykluser fra seher grensen til begynnelsen av tabellen.,

Du kan bruke pluss-operatør (+) for å kombinere områder med en liste over elementsin en matrise. For eksempel, for å vise elementene i indeksen stillinger 0, 2, and4 gjennom 6, skriv:

Også, for å liste opp flere områder og enkelte elementer som du kan bruke plusoperator., For eksempel, for å liste opp elementer null til to, fire og seks, og theelement på åttende stedsbestemt, skriv:

Iterasjoner over array-elementer

Du kan også bruke løkker konstruksjoner, for eksempel ForEach, For, og Mens looper, torefer til elementene i en matrise. For eksempel, for å bruke en ForEach loop todisplay elementene i $a array, skriv:

Foreach loop-koden gjennom matrise og returnerer hver verdi i thearray fram til slutten av tabellen.,

For-løkke er nyttig når du er stigende tellere mens undersøke theelements i en matrise. For eksempel, for å bruke en For-løkke til å vende om, hver othervalue i en matrise, skriv:

Du kan bruke en While-løkke for å vise elementene i en array til en definedcondition er ikke lenger sant., For eksempel, for å vise elementene i $aarray mens tabellindeksen er mindre enn 4, skriv:

Egenskaper av matriser

Telle eller Lengde eller LongLength

for Å finne ut hvor mange elementer er i en rekke, bruk Length eiendel eller densCount alias. Longlength er nyttig hvis tabellen inneholder mer than2,147,483,647 elementer.

Verdi

Returnerer antall dimensjoner i tabellen., De fleste tabeller i PowerShell haveone dimensjon, bare. Selv når du tror du er å bygge en multidimensionalarray; som i følgende eksempel:

følgende eksempel viser hvordan du oppretter en virkelig flerdimensjonal array usingthe .Net Framework.

Metoder for matriser

Slett

Sett alle element verdier til standard verdi av tabellen»s element type.Clear () – metoden ikke tilbakestille størrelsen på tabellen.,

I det følgende eksemplet $a er en array av objekter.

I dette eksempelet, $intA er uttrykkelig skrevet for å inneholde heltall.

ForEach

Gjør det mulig å iterere over alle elementene i matrisen og utføre en gitt operationfor hvert element i matrisen.

ForEach metoden har flere overbelastning som utfører forskjellige operasjoner.,

ForEach(scriptblock uttrykk)

ForEach(scriptblock uttrykk, objekt argumenter)

Denne metoden ble lagt i PowerShell v4.

Merk

syntaksen krever bruk av skript blokk. Parentes er valgfritt ifthe scriptblock er den eneste parameteren. Også, det må ikke være en spacebetween metode og åpning parentes eller spenne.

følgende eksempel viser hvordan bruke foreach-metoden. I dette tilfellet theintent er å generere square verdien av elementene i matrisen.,

Akkurat som -ArgumentList parameter av ForEach-Object, argumentsparameteren gir bestått av en rekke argumenter til et script blockconfigured til å akseptere dem.

For mer informasjon om atferden til ArgumentList, seeabout_Splatting.,

ForEach(type convertToType)

ForEach metoden kan brukes til å raskt kastet elementene til en differenttype; følgende eksempel viser hvordan du konvertere en liste over string datoer for å type.

ForEach(string egenskapsnavn)

ForEach(string egenskapsnavn, objekt newValue)

ForEach metoden kan også brukes til å raskt hente eller sette propertyvalues for ethvert element i samlingen.,

ForEach(string methodName)

ForEach(string methodName, objekt argumenter)

til Slutt, ForEach metoder kan brukes til å utføre en metode på hvert element i samlingen.

Akkurat som -ArgumentList parameter av ForEach-Object, argumentsparameteren gir bestått av en rekke argumenter til et script blockconfigured til å akseptere dem.

Merk

Start i Windows PowerShell-3.,0 gjenopprette egenskaper og executingmethods for hvert element i en samling kan også oppnås ved å bruke «Methodsof skalar gjenstander og samlinger» Du kan lese mer om det hereabout_methods.

Der

Gjør det mulig å filtrere eller velg elementene i matrisen. Skriptet må evaluateto noe annet enn: null (0), tom streng, $false eller $null forthe element for å vise etter Where

Det er en definisjon for Where metode.,

Merk

syntaksen krever bruk av skript blokk. Parentes er valgfritt ifthe scriptblock er den eneste parameteren. Også, det må ikke være en spacebetween metode og åpning parentes eller spenne.

Expression er scriptblock som er nødvendig for filtrering, modevalgfritt argument gir ekstra utvalget evner, ognumberToReturn valgfritt argument lar evne til å begrense hvor mange itemsare returnert fra filteret.,p>Den akseptable verdier for mode er:

  • Standard (0) – Returnere alle elementene
  • Første (1) – gå Tilbake til første punkt
  • Siste (2) – Retur siste elementet
  • SkipUntil (3) – Hopp over elementer til condition er sann, den tilbake remainingitems
  • Til (4) – Returnere alle elementene til condition er sann
  • Split (5) – Returnerer en matrise av to elementer
    • første element inneholder samsvarende elementer
    • Det andre elementet inneholder de resterende elementene

følgende eksempel viser hvordan du velger alle odde tall fra tabellen.,

Dette eksemplet viser hvordan du velger de strenger som ikke er tom.

Standard

Default mode filtre elementer ved hjelp av Expression scriptblock.

Hvis en numberToReturn er tilgjengelig, angir maksimalt antall itemsto tilbake.,

Merk

Begge Default modus og First modus returnere den første(numberToReturn) elementer, og kan brukes om hverandre.

Siste

SkipUntil

SkipUntil modus hopper over alle objekter i en samling til et objekt passesthe script blokkere uttrykk filter. Den går deretter tilbake ALLE gjenværende collectionitems uten å teste dem. Bare én passerer elementet er testet.

Dette betyr at de returnerte samlingen inneholder både passerer andnon-bestått elementer som IKKE er testet.,

antallet elementer som returneres kan være begrenset ved å sende en verdi tilnumberToReturn argument.

Til

Until modus inverterer SkipUntil modus. Den returnerer ALLE poster i acollection til et element går skriptet blokkere uttrykk. Når en itempasses den scriptblock uttrykk, Where metode stopper behandlingen elementer.

Dette betyr at du får det første sett av ikke-bestått elementer fraWhere metode., Etter ett element som går, resten er IKKE testet eller returnert.

antallet elementer som returneres kan være begrenset ved å sende en verdi tilnumberToReturn argument.

Merk

Begge Until og SkipUntil operere under forutsetning av IKKE å teste en batchof elementer.

Until returnerer varene FØR første pass.

SkipUntil returnerer alle poster ETTER første pass, inkludert thefirst passerer element.,

Split

Split modus deler, eller grupper samling elementene inn i to separatecollections. De som passerer scriptblock uttrykk, og de som ikke gjør det.

Hvis en numberToReturn er angitt, første samling, inneholder thepassing elementer, for ikke å overskride den verdien som er angitt.

De resterende objektene, selv de som PASSERER uttrykk filter, arereturned i den andre samlingen.,

Få medlemmer av en matrise

for Å få de egenskapene og metodene i en matrise, som for eksempel Lengde eiendom andthe SetValue metode, bruk InputObject av parameteren Get-Membercmdleten.

Når du pipe et utvalg til Get-Member, PowerShell sender elementer oneat en tid og Get-Member returnerer typen av hvert element i matrisen (ignoringduplicates).

Når du bruker InputObject parameter, Get-Member returnerer medlemmer ofthe utvalg.,

For eksempel, følgende kommando får medlemmer av $a arrayvariable.

Du kan også få medlemmer av en array ved å skrive inn et komma (,) før thevalue som er transportert til Get-Member cmdleten. Komma gjør array thesecond element i en matrise av matriser. PowerShell rør den rekker en ata tid og Get-Member returnerer medlemmer av utvalget. Som neste twoexamples.,

Manipulere en matrise

Du kan endre elementer i en matrise legge til et element til en matrise, andcombine verdier fra to tabeller i en tredje rekke.

Hvis du vil endre verdien i et bestemt element i en matrise, angi arrayname og indeksen for elementet som du vil endre, og bruk deretter theassignment operatøren (=) for å angi en ny verdi for elementet., For eksempel,for å endre verdien av det andre elementet i $a array (indeks posisjon 1) to10, skriv:

Du kan også bruke SetValue metode i en matrise for å endre en verdi. Thefollowing eksempel endringer i den andre verdi (indeks posisjon 1) $a arrayto 500:

Du kan bruke += operatør for å legge til et element til en matrise. Den followingexample viser hvordan du kan legge til et element til $a array.,

Merk

Når du bruker += operatør, PowerShell faktisk skaper en ny arraywith verdiene av den opprinnelige matrisen og den merverdi. Dette mightcause ytelse hvis operasjonen gjentas flere ganger eller størrelsen på matrisen er for stor.

Det er ikke lett å slette elementer fra en tabell, men du kan opprette en newarray som bare inneholder utvalgte elementer av en eksisterende matrise., For eksempel,for å skape $t array med alle elementene i $a array med unntak for thevalue på indeksen posisjon 2, skriv:

for Å slå sammen to matriser til en enkelt matrise, bruk pluss-operatør (+). Thefollowing eksempel oppretter to matriser, kombinerer dem, og deretter viser theresulting kombinert utvalg.

Som et resultat, $z array inneholder 1, 3, 5 og 9.,

for Å slette en tabell, kan du angi en verdi av $null array. Den followingcommand sletter utvalg i $a variabel.

$a = $null

Du kan også bruke Remove-Item cmdleten, men tilordne en verdi av $null isfaster, spesielt for store matriser.

Matriser av null eller ett

Begynner i Windows PowerShell 3.0, en samling av null eller ett objekt hasthe antall og Lengde eiendom. Du kan også indeksen til en rekke oneobject., Denne funksjonen hjelper deg til å unngå scripting feil som kan oppstå når acommand som forventer en samling blir færre enn to elementer.

følgende eksempler viser denne funksjonen.

Null objekter

Ett objekt

Indeksering støtte for Systemet.Tuple objekter

PowerShell 6.1 lagt til støtte for indeksert tilgang til Tuple objekter tilsvarende til matriser.,For eksempel:

i Motsetning til matriser og andre samling objekter, Tuple objekter behandles som asingle objekt når gått gjennom rørledning eller ved hjelp av parametre som supportarrays av objekter.

For mer informasjon, se System.Tuple.

Se også:

  • about_Assignment_Operators
  • about_Hash_Tables
  • about_Operators
  • about_For
  • about_Foreach
  • about_While


Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *