Pole

0 Comments
  • 08/26/2020
  • 14 minut číst
    • c

Krátký Popis

Popisuje pole, která jsou datové struktury, navržen tak, aby storecollections položek.

dlouhý popis

pole je datová struktura, která je určena k ukládání sbírky položek.Položky mohou být stejného typu nebo různých typů.

začátek v systému Windows PowerShell 3.,0, sbírka nuly nebo jednoho objektu máněkteré vlastnosti polí.

vytvoření a inicializace pole

Chcete-li vytvořit a inicializovat pole, přiřaďte proměnné více hodnot. Hodnoty uložené v poli jsou vymezeny čárkou a odděleny od názvu operátorem přiřazení (=).,

chcete-li například vytvořit pole s názvem $A, který obsahuje sedm numerické (int)hodnot 22, 5, 10, 8, 12, 9, a 80, typ:

čárka může být také použit k inicializaci jedné položky pole umístěním thecomma než jednu položku.

chcete-li například vytvořit jednu položku pole s názvem $B obsahující singlevalue 7, typ:

můžete také vytvořit a inicializovat pole pomocí rozsah operátor (..).,Následující příklad vytvoří pole obsahující hodnoty 5 až 8.

Jako výsledek, $C obsahuje čtyři hodnoty: 5, 6, 7, a 8.

není-li zadán žádný datový typ, PowerShell vytvoří každé pole jako objectarray (systém.Předmět). Chcete-li určit datový typ pole, použijtemettype() metoda., Chcete-li například určit typ dat $Aarray, typ:

K vytvoření silně typované pole, to znamená, že pole, které může obsahovat onlyvalues určitého typu, obsazení proměnné typu pole, tak jako řetězcem, dlouho, nebo int32. Chcete-li obsadit pole, předejtevariabilní název s typem pole uzavřeným v závorkách., Chcete-li například vytvořit 32bitové celé číslo pole s názvem $ia obsahující čtyři celá čísla (1500, 2230, 3350,a 4000), typ:

Jako výsledek, $ia pole může obsahovat pouze celá čísla.

můžete vytvořit pole, která jsou obsazena do libovolného podporovaného typu v Microsoft.NET Framework. Například objekty, které Get-Process načtezastupující procesy, jsou systému.Diagnostik.Typ procesu., Vytvořit astrongly zadané pole objektů procesu, zadejte následující příkaz:

pole sub-výraz, operátor

pole sub-výraz, operátor vytvoří pole z prohlášení insideit. Bez ohledu na to, co prohlášení uvnitř operátora produkuje, operátor budeumístěte jej do pole. I když existuje nula nebo jeden objekt.

syntaxe operátora pole je následující:

operátor pole můžete použít k vytvoření pole nula nebo jednoho objektu., Například:

pole operátor je užitečné ve skriptech, když jste získali objekty, ale donot vědět, jak mnoho objektů dostanete. Například:

pro více informací o operátorovi pole sub-výraz vizabout_operators.

Přístup a použití prvků pole

Čtení pole

můžete odkazovat na pole pomocí jeho název proměnné. Chcete-li zobrazit všechnyprvky v poli zadejte název pole., Například, za předpokladu, že $a je anarray obsahující celá čísla 0, 1, 2, až 9; psaní:

můžete se odkazovat na prvky v poli pomocí indexu, začátek atposition 0. Přiložte číslo indexu do závorek., Například, pro zobrazení první prvek v $a array, typ:

K zobrazení na třetí element v $a pole, zadejte:

můžete načíst část pole pomocí řady operátor pro index. Například, získat druhý až pátý prvky pole, wouldtype:

Záporná čísla se počítají od konce pole., Například“ -1 “ odkazujeposlední prvek pole. K zobrazení poslední tři prvky thearray, v indexu vzestupném pořadí, typ:

Pokud zadáte záporné indexy v sestupném pořadí, vaše změny výstupu.

při použití tohoto zápisu však buďte opatrní. Notační cykly od hranice k začátku pole.,

můžete použít operátor plus (+) kombinovat se pohybuje s seznam elementsin pole. Například, pro zobrazení prvků na index pozice 0, 2, and4 přes 6, typ:

Také, aby seznam více oblastí a jednotlivé prvky můžete použít plusoperator., Například, aby se seznam prvků, nula dva, čtyři až šest, a theelement na osmém poziční typ:

Iterace přes prvky pole

můžete také použít looping konstrukty, jako ForEach, For, While, torefer prvků v poli. Například, používat smyčky ForEach zobrazit prvky v $a array, typ:

Foreach smyčka iteruje přes pole a vrátí všechny hodnoty v thearray až do dosažení konce pole.,

smyčka For Je užitečná, když zvyšujete čítače při zkoumání prvků v poli. Například, používat Pro smyčce, vrátit se každý othervalue v poli, typ:

můžete použít cyklus While k zobrazení prvků v matici, dokud definedcondition již není pravda., Například, pro zobrazení prvků v $apole, zatímco index pole je menší než 4, typ:

Vlastnosti polí

Počet nebo Délku nebo LongLength

určit, kolik položky jsou v poli, pomocí Length majetku nebo jehoCount alias. Longlength je užitečné, pokud pole obsahuje více než 2,147,483,647 prvky.

Rank

vrací počet rozměrů v poli., Většina polí v PowerShellu májeden rozměr, pouze. Dokonce i když si myslíte, že jste budování multidimensionalarray; jako v následujícím příkladu:

následující příklad ukazuje, jak vytvořit skutečně multidimenzionální pole pomocí .Net Framework.

Způsoby pole

Nastaví všechny hodnoty prvků na výchozí hodnotu pole“typ prvku.Metoda Clear () nevynuluje velikost pole.,

v následujícím příkladu $a je pole objektů.

V tomto příkladu $intA je výslovně napsaný, že obsahují celá čísla.

ForEach

Umožňuje iterovat přes všechny prvky v poli a provádět dané operationfor každý prvek pole.

metoda ForEach má několik přetížení, které provádějí různé operace.,

ForEach(scriptblock výraz)

ForEach(scriptblock výraz, objekt argumenty)

Tato metoda byla přidána v PowerShell v4.

Poznámka

syntaxe vyžaduje použití bloku skriptů. Závorky jsou volitelné, pokudstriptblock je jediným parametrem. Také nesmí existovat mezeramezi metodou a otevírací závorkou nebo ortézou.

následující příklad ukazuje, jak používat metodu foreach. V tomto případě jde o generování čtvercové hodnoty prvků v poli.,

Stejně jako -ArgumentList parametr ForEach-Object argumentsparametr umožňuje procházení pole argumentů skriptu blockconfigured je přijmout.

pro více informací o chování ArgumentList, vizabout_splatting.,

ForEach(typ convertToType)

ForEach metoda může být použita k rychlému obsazení prvky na differenttype; následující příklad ukazuje, jak převést seznam řetězec data do typu.

ForEach(string propertyName)

ForEach(string propertyName, objekt newValue)

ForEach metoda může být také použit k rychle načíst, nebo nastavit propertyvalues pro každou položku v kolekci.,

ForEach(string methodName)

ForEach(string methodName, objekt argumenty)

a Konečně, ForEach metody mohou být použity k provedení metody na každou položku v kolekci.

Stejně jako -ArgumentList parametr ForEach-Object argumentsparametr umožňuje procházení pole argumentů skriptu blockconfigured je přijmout.

Poznámka

spuštění v systému Windows PowerShell 3.,0 načítání vlastností a executingmethods pro každou položku v kolekci může být také dosaženo pomocí „Metody skalární objekty a kolekce“ můžete Si přečíst více o tom hereabout_methods.

kde

umožňuje filtrovat nebo vybrat prvky pole. Skript musí evaluateto nic jiného, než: nula (0), prázdný řetězec, $false nebo $null pro prvek ukázat po Where

Tady je jedna definice pro Where metoda.,

Poznámka

syntaxe vyžaduje použití bloku skriptů. Závorky jsou volitelné, pokudstriptblock je jediným parametrem. Také nesmí existovat mezeramezi metodou a otevírací závorkou nebo ortézou.

Expression je scriptblock, že je nutné pro filtrování, modenepovinný argument umožňuje další výběr schopností, anumberToReturn nepovinný argument umožňuje schopnost omezit kolik položky jsou vráceny z filtru.,p>přijatelné hodnoty pro mode jsou:

  • Default (0) – Vrátí všechny položky
  • První (1) – Vrátí první položka
  • Poslední (2) – Vrátit poslední položka
  • SkipUntil (3) – Přeskočit položky, dokud je podmínka splněna, návrat remainingitems
  • Až (4) – Vrátit všechny položky, dokud je podmínka true
  • Rozdělení (5) – Vrací pole dvou prvků
    • první prvek obsahuje odpovídající položky
    • druhý prvek obsahuje zbývající položky

následující příklad ukazuje, jak vybrat všechna lichá čísla z pole.,

Tento příklad ukazuje, jak vybrat struny, které nejsou prázdné.

Default

Default režim filtry položky pomocí Expression scriptblock.

Pokud je k dispozici numberToReturn, určuje maximální počet položekproměnit.,

Poznámka:

Default režim First režim vrátí první(numberToReturn) položek, a mohou být použity zaměnitelně.

Poslední

SkipUntil

SkipUntil režim přeskočí všechny objekty v kolekci, dokud objekt předá blok skriptu výrazu filtru. Poté vrátí všechny zbývající collectionitemy bez jejich testování. Testuje se pouze jedna procházející položka.

to znamená, že vrácená sbírka obsahuje jak procházející, tak i procházející položky, které nebyly testovány.,

počet vrácených položek lze omezit předáním hodnoty argumentunumberToReturn.

Dokud

Until režim obrátí SkipUntil režim. Vrací všechny položky v akolekci, dokud položka neprojde výrazem bloku skriptu. Jakmile itempasses výraz scriptblock, Where metoda zastaví zpracování položek.

to znamená, že obdržíte první sadu nepřecházejících položek z metodyWhere., Poté, co jedna položka projde, zbytek není testován ani vrácen.

počet vrácených položek lze omezit předáním hodnoty argumentunumberToReturn.

Poznámka:

Until SkipUntil provozovat za předpokladu, že NEJSOU testování batchof položky.

Until vrátí položky před prvním průchodem.

SkipUntil vrátí všechny položky po prvním průchodu, včetně první procházející položky.,

Split

Split mode splits, or groups collection items into two separatecolections. Ty, které projdou výrazem scriptblock, a ty, které ne.

Pokud je zadáno numberToReturn, první kolekce obsahuje položky, které nepřekračují zadanou hodnotu.

zbývající objekty, dokonce i ty, které procházejí expresním filtrem, jsouv druhé sbírce.,

Získejte členy pole

získat vlastnosti a metody, pole, například Délku majetku a SetValue metoda, použití InputObject parametr Get-Memberrutiny.

Když jste potrubí pole Get-Member, PowerShell odešle položky u čas a Get-Member vrátí typ každé položky v poli (ignoringduplicates).

při použití parametru InputObject vrátíGet-Member členy pole.,

například následující příkaz získá členy $a arrayvariable.

můžete také získat členy pole zadáním čárky (,) než hodnota, která je zavedená do Get-Member rutiny. Čárka dělá pole thesecond položky v poli polí. PowerShell potrubí pole jeden ata čas a Get-Member vrátí členy pole. Jako další dvapříklady.,

Manipulování pole

můžete změnit prvky v matici, přidat prvek do pole, andcombine hodnoty ze dvou polí do třetího pole.

změnit hodnotu určitého prvku v poli, zadejte arrayname a index prvku, který chcete změnit, a pak použít theassignment operátor (=) k zadání nové hodnoty pro daný prvek., Například změnit hodnotu na druhou položku v $a array (index polohy 1) to10, typ:

můžete také použít SetValue metoda pole pro změnu hodnoty. Následující příklad změní druhá hodnota (pozice index 1) $a arrayto 500:

můžete použít += operátor přidat prvek do pole. Následující příklad ukazuje, jak přidat prvek do pole$a.,

Poznámka:

Při použití += provozovatel, PowerShell vlastně vytváří nové arraywith hodnot původního pole a přidanou hodnotu. To může způsobit problémy s výkonem, pokud se operace opakuje několikrát nebovelikost pole je příliš velká.

To není snadné odstranit prvky z pole, ale můžete vytvořit newarray, která obsahuje pouze vybrané prvky ze stávajícího pole., Chcete-li například vytvořit $t pole se všemi prvky v $a array s výjimkou hodnoty na index polohy 2, typ:

kombinovat dvě pole do jednoho pole, použít operátor plus (+). Thefollowing příklad vytvoří dvě pole, kombinuje je, a pak zobrazí theresulting kombinované pole.

výsledkem je, že pole$z obsahuje 1, 3, 5 a 9.,

Chcete-li pole odstranit, přiřaďte k poli hodnotu $null. Následující příkaz odstraní pole v proměnné $a.

$a = $null

můžete také použít Remove-Item rutiny, ale přiřazení hodnoty $null isfaster, zejména pro velké pole.

pole nula nebo jeden

začíná v systému Windows PowerShell 3.0, sbírka nuly nebo jednoho objektu má vlastnost počet a délka. Také můžete indexovat do pole jednohobjekt., Tato funkce vám pomůže vyhnout se chybám skriptování, ke kterým dochází, když acommand, který očekává, že sbírka dostane méně než dvě položky.

následující příklady ukazují tuto funkci.

Žádné objekty

Jeden objekt

Indexování podporu pro Systém.Nuple objects

PowerShell 6.1 přidal podporu pro indexovaný přístup Tuple objektů, podobně jako pole.,Například:

na Rozdíl od polí a jiné sbírky objekty, n-Tice objektů jsou považovány jako jeden objekt, když prošel přes potrubí nebo parametry, které supportarrays objektů.

Další informace naleznete v části Systém.Dvojice.

Viz také

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


Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *