A Tömbök

0 Comments
  • 08/26/2020
  • 14 perc olvasni
    • S
    • s
    • c

Rövid Leírás

Leírja, tömbök, amelyek adatszerkezetek célja, hogy storecollections elemeket.

Hosszú leírás

egy tömb olyan adatstruktúra, amelyet elemek gyűjteményének tárolására terveztek.Az elemek lehetnek azonos vagy különböző típusok.

kezdve a Windows PowerShell 3.,0, nulla vagy egy objektum gyűjteménye vana tömbök bizonyos tulajdonságai.

tömb létrehozása és inicializálása

egy tömb létrehozásához és inicializálásához rendeljen több értéket egy változóhoz. A tömbben tárolt értékek vesszővel vannak határolva, és a hozzárendelés operátor (=) választja el a megváltoztatható névtől.,

például egy $A nevű tömb létrehozásához, amely a következő hét numerikus (int)értéket tartalmazza 22, 5, 10, 8, 12, 9, és 80, type:

a vessző is lehet használni, hogy inicializálja egy elem tömb azáltal thecomma előtt egyetlen elemet.

például egy $B nevű elemtömb létrehozásához, amely tartalmazza a 7-es egyedi értéket, típus:

egy tömböt is létrehozhat és inicializálhat a tartomány operátor segítségével (..).,A következő példa egy tömböt hoz létre, amely az 5-8 értékeket tartalmazza.

ennek eredményeként $C négy értéket tartalmaz: 5, 6, 7 és 8.

ha nincs megadva adattípus, a PowerShell minden tömböt objektumként (rendszerként) hoz létre.Tárgy). A tömb adattípusának meghatározásához használja akettype () módszer., Például a $Atömb adattípusának meghatározásához írja be:

egy erősen gépelt tömb létrehozásához, azaz egy olyan tömb, amely csak egy adott típusú értéket tartalmazhat, a változót tömb típusként, például asstring, long vagy int32. Egy tömb leadásához előzze meg aváltoztatható név zárójelbe zárt tömb típussal., Például a $ia négy egész számot (1500, 2230, 3350 és 4000) tartalmazó A32 bites egész tömb létrehozásához írja be:

ennek eredményeként a$ia tömb csak egész számok.

létrehozhat tömbök, amelyek öntött bármilyen támogatott típusú a Microsoft.NET keret. Például az objektumok, hogy a Get-Process lekéri torepresent folyamatok a Rendszer.Diagnosztika.Folyamat típusa., Hozzon létre astrongly gépelt sor folyamat tárgyak, írja be a következő parancsot:

A tömb al-kifejezés üzemeltető

A tömb al-kifejezés üzemeltető létrehoz egy tömböt a nyilatkozatok insideit. Bármi legyen is az operátoron belüli kijelentés, az operátor leszhelyezze azt egy tömbbe. Még akkor is, ha nulla vagy egy objektum van.

a tömb operátor szintaxisa a következő:

használhatja a tömb operátort nulla vagy egy objektum tömbjének létrehozásához., Forexample:

az array operátor hasznos szkriptekben, ha objektumokat használ, de nem tudja, hány objektumot kap. Például:

További információ a tömb al-kifejezés operátor, seeabout_Operators.

tömbelemek elérése és használata

tömb olvasása

egy tömbre hivatkozhat a változó neve használatával. A tömb összes elemének megjelenítéséhez írja be a tömb nevét., Például, feltételezve, hogy a$a olyan anarray, amely 0, 1, 2 egészeket tartalmaz 9-ig; gépelés:

hivatkozhat egy tömb elemeire egy index használatával, a 0.pozíciótól kezdve. Zárójelben csatolja az indexszámot., Például a $a tömb első elemének megjelenítéséhez típus:

a harmadik elem megjelenítéséhez a $a tömb, típus: p>

a tömb egy részét az index tartomány operátorával lehet letölteni. Forexample, hogy letölteni a második-ötödik elem a tömb, akkortype:

negatív számok számítanak a végén a tömb., Például a” -1 ” utala tömb utolsó eleme. Az index utolsó három elemének megjelenítéséhez növekvő sorrendben írja be:

ha csökkenő sorrendben írja be a negatív indexeket, a kimenet megváltozik.

azonban legyen óvatos, ha ezt a jelölést használja. A jelölési ciklusok a véghatártól a tömb elejéig.,

használhatja a plusz operátort (+), hogy kombináljon egy tartományt az elemek listájávalegy tömbben. Például, ha az elemeket 0, 2, and4-6 indexpozíciókban szeretné megjeleníteni, írja be:

Több tartomány és egyedi elem felsorolásához használhatja a plusoperátort is., Például, hogy a lista elemei nulla-kettő, négy, hat, illetve theelement a nyolcadik helyzeti típus:

Ismétlések át tömb elemek

használhatja hurok konstrukciók, mint a ForEach, A, Míg hurkok, torefer, hogy az elemek tömbje. Például, hogy egy ForEach hurok todisplay az elemek a $a tömb, típus:

az Előfolyam hurok végighalad a tömbben, és visszatér minden értéket a tömb végéig.,

A For hurok akkor hasznos, ha a számlálókat egy tömb elemeinek vizsgálata közben növeli. Például, ha a For loop-ot használ minden más visszatéréshezérték egy tömbben, írja be:

használhatja a While loop-ot az elemek megjelenítéséhez egy tömbben, amíg a definedcondition már nem igaz., Például a $atömb elemeinek megjelenítéséhez, míg a tömb indexe kevesebb, mint 4, típus:

tömbök tulajdonságai

szám vagy hossz vagy LongLength

annak meghatározásához, hogy hány elem van egy tömbben, használja a Length tulajdonságot vagy annakCount álnevét. Longlength akkor hasznos,ha a tömb több mint2,147,483, 647 elemet tartalmaz.

Rank

visszaadja a tömb méreteinek számát., A PowerShell legtöbb tömbje rendelkezikegy dimenzió, csak. Még akkor is, ha úgy gondolja, hogy multidimensionalarray-t épít; mint a következő példa:

a következő példa bemutatja, hogyan lehet létrehozni egy valóban többdimenziós tömböt a.Net keretrendszer használatával.

tömbök metódusai

Clear

az összes elemértéket az ” S ” elemtípus alapértelmezett értékére állítja.A Clear () módszer nem állítja vissza a tömb méretét.,

a következő példában $a egy sor objektum.

ebben a példában a $intA egészeket tartalmaz.

ForEach

lehetővé teszi a tömb összes elemének iterálását és egy adott művelet végrehajtását a tömb minden elemére.

a ForEach módszernek több túlterhelése van, amelyek különböző műveleteket hajtanak végre.,

ForEach(scriptblock expression)

ForEach (scriptblock expression, object arguments)

ezt a módszert a PowerShell v4-ben adták hozzá.

Megjegyzés

a szintaxishoz szkriptblokk használata szükséges. A zárójelek opcionálisak, haa scriptblock az egyetlen paraméter. Ezenkívül nem lehet szóköz a módszer és a nyitó zárójel vagy zárójel között.

a következő példa bemutatja, hogyan kell használni a foreach módszert. Ebben az esetben az inintent a tömbben lévő elemek négyzetértékének generálása.,

csakúgy, mint a -ArgumentList paraméter ForEach-Object, a argumentsparaméter lehetővé teszi az áthaladást egy sor érv egy szkriptblokkhozkonfigurálva, hogy elfogadja őket.

További információ a viselkedését ArgumentList, seeabout_Splatting.,

ForEach(type convertToType)

The ForEach metódus használható, hogy gyorsan leadott az elemeket egy másiktípusba; a következő példa azt mutatja, hogyan lehet átalakítani egy listát a string dátumokat type.

ForEach(string propertyName)

ForEach(string propertyName, object newValue)

a ForEach módszer is használható, hogy gyorsan letölteni, vagy állítsa propertyvalues minden elem a gyűjteményben.,

ForEach(string methodName)

ForEach(string methodName, object arguments)

végül ForEach methods lehet használni, hogy végre egy módszert minden elem inthe gyűjtemény.

csakúgy, mint a -ArgumentList ForEach-Object paraméter, a argumentsparaméter lehetővé teszi az áthaladást egy sor érv egy szkriptblokkhozkonfigurálva, hogy elfogadja őket.

Megjegyzés

kezdve a Windows PowerShell 3.,0 a tulajdonságok lekérdezése és a végrehajtásmódszerek a gyűjtemény minden egyes eleméhez a “Methodsof Skalar objects and collections” segítségével is elvégezhetők, erről bővebben itt olvashat hereabout_methods.

ahol

lehetővé teszi a tömb elemeinek szűrését vagy kiválasztását. A szkriptnek bármi mást kell értékelnie, mint: nulla (0), üres karakterlánc, $false vagy $null a Where

Where módszer.,

Megjegyzés

a szintaxishoz szkriptblokk használata szükséges. A zárójelek opcionálisak, haa scriptblock az egyetlen paraméter. Ezenkívül nem lehet szóköz a módszer és a nyitó zárójel vagy zárójel között.

The Expression is scriptblock that is required for filtering, the modeopcionális argumentum lehetővé teszi a további kiválasztási képességek, és anumberToReturn opcionális argumentum lehetővé teszi, hogy korlátozza, hogy hány itemsare vissza a szűrőből.,p>Az elfogadható értékek mode vagy:

  • Alapértelmezett (0) – Vissza az összes elem
  • Első (1) – Visszatérés az első elem
  • Utolsó (2) – Visszatérés az utolsó elem
  • SkipUntil (3) – Ugrás az elemeket, amíg a feltétel igaz, a vissza a remainingitems
  • , Amíg a (4) – Vissza az összes elem, amíg a feltétel igaz,
  • Split (5) – Vissza egy sor két elem
    • első elem tartalmaz megfelelő elem
    • második elem tartalmaz, a többi elem

A következő példa azt mutatja be, hogyan válasszuk ki minden páratlan számok a tömb.,

Ez a példa megmutatja, hogyan kell kiválasztani a nem üres karakterláncokat.

Default

The Default mode filters items using the Expression scriptblock.

Ha a numberToReturn van megadva, akkor megadja a tételek maximális számátvisszatérésre.,

Megjegyzés

mind aDefault mód és First mód visszaadja az első(numberToReturn) elemet, és felcserélhető módon használható.

Last

SkipUntil

The SkipUntil mód kihagyja az összes objektumot a gyűjteményben, amíg egy objektum át nem lépa szkriptblokk kifejezésszűrő. Ezután visszaadja az összes fennmaradó gyűjteménytelemeket tesztelés nélkül. Csak egy elhaladó elemet tesztelnek.

Ez azt jelenti, hogy a visszaküldött gyűjtemény mind elhaladó, mind pedig nem tesztelt elemeket tartalmaz.,

a visszaküldött tételek száma korlátozható úgy, hogy egy értéket anumberToReturn argumentumra továbbítunk.

ig

a Until mód megfordítja a SkipUntil módot. Az acollection összes elemét visszaadja, amíg egy elem át nem adja a szkriptblokk kifejezést. Ha egy elem átmegy a scriptblock kifejezésen, aWhere módszer leállítja az elemek feldolgozását.

Ez azt jelenti, hogy aWhere metódusból kapja meg az első nem áthaladó elemeket., Miután egy elem elhalad, a többit nem tesztelik vagy visszaküldik.

a visszaküldött tételek száma korlátozható úgy, hogy egy értéket anumberToReturn argumentumra továbbítunk.

Megjegyzés

Both Untilés SkipUntil a tételek tesztelésének elmulasztása mellett működik.

Until visszaadja az elemeket az első lépés előtt.

SkipUntil visszaadja az összes elemet az első lépés után, beleértve aElőször elhaladó elemet.,

Split

The Split mode splits, or groups collection items into two separatecollections. Azok, akik átmennek a scriptblock kifejezésen, és azok, akik nem.

Ha anumberToReturn meg van adva, akkor az első gyűjtemény tartalmazza a megadott értéket.

a fennmaradó objektumok, még azok is, amelyek áthaladnak a kifejezésszűrőn, felmerülneka második gyűjteményben.,

Szerezd meg a tagok egy tömb

ahhoz, hogy a tulajdonságok és módszerek egy tömb, mint például a hossz tulajdonság és SetValue módszer, használja a InputObject paramétere a Get-Member cmdlet.

Ha egy tömbötGet-Member – ra pipál, a PowerShell egy időben elküldi az elemeket, aGet-Member visszaadja a tömb minden elemének típusát (ignoringduplicates).

az InputObject paraméter használatakor a Get-Member visszaadja a tömb tagjait.,

például a következő parancs kapja a $a arrayvariable tagjait.

egy tömb tagjait is megkaphatja, ha vesszőt (,) ír be a Get-Member cmdlet. A vessző teszi a tömb thesecond elem egy tömb tömbök. PowerShell csövek a tömbök egy ata időben Get-Member visszaadja a tömb tagjai. Mint a következő kétpéldák.,

egy tömb manipulálása

megváltoztathatja az elemeket egy tömbben, hozzáadhat egy elemet egy tömbhöz, éskombinálja az értékeket két tömbből egy harmadik tömbbe.

egy tömb egy adott elemének értékének megváltoztatásához adja meg a módosítani kívánt elem tömbnevét és indexét, majd használja aaz osztályozó operátort (=) az elem új értékének megadásához., Például a $a array (indexpozíció 1) TO10 második elemének értékének megváltoztatásához írja be:

egy tömb SetValue metódusát is használhatja egy érték megváltoztatásához. A következő példa megváltoztatja a $a arrayto 500 második értékét (indexpozíció 1):

a += operátort használhatja egy elem hozzáadásához egy tömbhöz. A következő példa bemutatja, hogyan adhat hozzá egy elemet a$a tömbhöz.,

Megjegyzés

a += operátor használatakor a PowerShell valójában új tömböt hoz létre az eredeti tömb értékeivel és a hozzáadott értékkel. Ez a teljesítményproblémákat okoz, ha a műveletet többször megismételik, vagya tömb mérete túl nagy.

nem könnyű törölni az elemeket egy tömbből, de létrehozhat egy newarray-t, amely csak egy meglévő tömb kiválasztott elemeit tartalmazza., Például,hogy hozzon létre a $t array minden elem a $a array kivéve értékét az index pozíció 2, típus:

, Hogy összekapcsolják a két tömb egyetlen tömb, használja a plusz üzemeltető (+). Thefollowing példa létrehoz két tömbök, egyesíti őket, majd megjeleníti theresulting kombinált tömb.

ennek eredményeként a $z tömb 1, 3, 5 és 9.,

egy tömb törléséhez rendeljen hozzá egy $null értéket a tömbhöz. A followingcommand törli a tömböt a $a változóban.

$a = $null

használhatja a Remove-Item cmdlet értéket is, de hozzárendelheti a $null isfaster értéket, különösen nagy tömbök esetében.

nulla vagy egy

tömbök kezdve a Windows PowerShell 3.0-ban, egy nulla vagy egy objektum gyűjteménye rendelkezika szám és Hossz tulajdonság. Is, akkor indexelni egy tömb egyobjektumot., Ez a funkció segít elkerülni scripting hibák fordulnak elő, amikor acommand, hogy elvárja a gyűjtemény lesz kevesebb, mint két elem.

a következő példák mutatják ezt a funkciót.

zero objects

egy objektum

Indexing support for System.Tuple objects

PowerShell 6.1 hozzáadta a tuple objektumok indexelt hozzáférésének támogatását, hasonlóan a tömbökhöz.,Például:

Ellentétben tömböket, illetve egyéb gyűjtemény tárgyak, Tuple tárgyak kezelik, mint egy tárgyat, amikor áthaladt a vezeték vagy a paraméterek supportarrays tárgyak.

további információkért lásd: rendszer.Tuple.

Lásd még:

  • about_Assignment_Operators
  • about_Hash_Tables
  • about_Operators
  • about_For
  • about_Foreach


Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük