Introduktion till Array i PowerShell
Arrayen är en typ av datastruktur som kan användas för att lagra en samling av objekt, samling av objekt kan vara antingen av samma datatyp eller annorlunda. Elementen i en matris kan nås med indexet. Indexet för arrayen börjar vanligtvis vid 0, så för att komma åt det första elementet måste du använda indexet (0). Vanligtvis kan bara två operationer vara på en matris, dvs lägga till ett element i matrisen eller ta bort ett element. I den här artikeln ska vi lära oss om Array i PowerShell.
Definiera en matris i PowerShell
En matris kan definieras på något av följande sätt,
@ () Är ett av sätten att definiera en matris.
Exempel:
$Subject = @('History', 'Geo', 'Maths')
- En matris kan också skapas som en kommaseparerad lista.
$test='testone', 'testtwo', 'testthree'
- En matris kan skapas för ett specifikt datatypelement enligt följande,
(int()) $numbersarray = 1, 2, 3, 4, 5
Ovanstående är ett heltalarray och det kan endast innehålla heltalvärden.
Åtkomst till en matris
Låt oss definiera en matris,
Exempel:
('test1', 'test2', 'test3', 'test4')
$ test (0) returnerar test1, $ test (3) returnerar test4. På många språk kan endast ett enda index specificeras, medan i PowerShell kan flera index användas samtidigt.
I ovanstående $ -test (1, 3) kommer tillbaka,
test2
test4
Operations on a Array
Lägga till objekt i en matris. Låt oss se ett exempel på hur man lägger till ett element i en befintlig matris.
Exempel:
('welcome', 'home')
För att lägga till ovanstående matris används operatören '+ ='.
$ Test + = 'Raj'
Att köra $ test kommer att återvända,
Välkommen
Hem
raj
Få greven av en matris
Här förklarar vi hur man använder följande input för att få räkningen av en matris.
Inmatning:
('test1', 'ertr', 'fgdfgfd', 'dfgfdg', 'dfdfsd', 'dfgfdgdfg')
$ test.Count kommer att returnera 6 vilket är räkningen / längden på arrayen.
1. Sortera elementen i en matris
Sorteringsoperatören kan användas för att sortera elementen i en matris om elementen är av samma datatyp.
Inmatning:
('oneee', 'zddsdsad', 'thraewawe')
$test |sort
Ovanstående kommando kommer att sortera elementen i stigande ordning
Produktion:
Inmatning:
$test |sort -Descending will sort the elements in the descending order
Produktion:
2. Uppdatera objekt i en matris
Indexet kan användas för att uppdatera ett element i matrisen
Inmatning:
('oneee', 'zddsdsad', 'thraewawe')
$test(0)='changed'
Ovanstående kommando kommer att ändra 'en' till 'ändrad'. Att utföra $ -test kommer att återgå
Produktion:
3. Hitta ett element i en matris
För att kontrollera ett array för värde kan liknande operatör användas
Inmatning:
('viki', ramu, 'aravind', 'vikram')
$test -like "*vik*"
Produktion:
Multidimensionell matris i PowerShell
Vi kan skapa en flerdimensionell grupp enligt följande,
$testMultidimensionalArrays = @(1, 2, 3), @(4, 5, 6), @(7, 8, 9)
Varje matris har en rad och tre kolumner.
Looping an Array
Liksom på andra språk kan for loop användas för att slinga objekt i en matris.
Inmatning:
('viki', 'ramu', 'aravind', 'vikram')
for($i=0;$i -lt $test.Length; $i++)
(
Write-Host $test($i) )
Utgång :
För-kan användas för att utföra en åtgärd mot varje objekt i matrisen.
Inmatning:
(1, 4, 5, 6, 7, 8, 9, 10)
foreach($i in $test)
(
$i=$i+5
Write-Host $i
)
Produktion:
Array List i PowerShell
En av nackdelarna med Array är att lägga till objekt i det, för att övervinna att vi har en matrislista.
Följande är syntaxen för att skapa en matrislista,
$myarray = (System.Collections.ArrayList)::new()
$myarray.Add(1)
$myarray.Add(2)
$myarray.Add(3)
$myarray
Den första raden är sättet att initiera en matrislista och de följande raderna är att lägga till objekt i ArrayList
Array vs Array List Performance
Följande exempel visar skillnaden i prestanda när du utför en operation i en matris- och matrislista
Inmatning:
Measure-Command -Expression ( 0..250 | ForEach-Object ( $arr += $_+1 ))
$arrlit = (System.Collections.ArrayList)@()
$f arrlit _performance = Measure-Command -Expression ( 0..250 | ForEach-Object ( $ arrlit += $_+1 ))
$ arrlit _performance
Det första kommandot utför en operation på matrisen och den tredje raden gör samma sak på en matrislista.
Produktion:
- Prestanda av Array
- Utförande av Array List
Arraylistans prestanda är snabbare och bättre än matrislistan.
Exempel på Array i PowerShell
Följande är ett exempel för att hitta längden på en matris med hjälp av loop, foreach loop och while loop.
Inmatning:
$testlist = 5.634, 4.512323, 3.312323, 13.2213213, 4.02324, 34.3334324, 34.04324, 45.4534324, 99.993234324, 11123234234 write-host("Printing the array elements")
$testlist
write-host("length of array")
$testlist.Length
write-host("fifth element in array")
$testlist(4) write-host("partial array")
$subList = $testlist(1..3) write-host("using for loop")
for ($i = 0; $i -le ($testlist.length - 1); $i += 1) (
$testlist($i) )
write-host("using forEach Loop")
foreach ($e in $testlist) (
$e
)
write-host("using while Loop")
$i = 0
while($i -lt 4) (
$testlist($i);
$i++
)
write-host("Assign values")
$testlist(1) = 10
$testlist
Produktion:
Hashtabell
Hashtabell används för att implementera en strukturerad matris. I hashtabellen lagras värdena i ett nyckelvärdesformat. De är också kända som ordlista eller associerande matris.
Syntax:
()
Eller
( key1=”test1”;key2=”test2”;key3=”test3”)
Där key1, key2 och key3 är nycklarna och test1, test2 och test3 är värdena.
Inmatning :
$testhashtable
Produktion:
Nyckeln eller värdena kan nås enligt följande med hjälp av .dot-operatören
Inmatning:
$testhashtable.keys
Produktion:
Inmatning:
$testhashtable.Values
Produktion:
Exempel
Följande är ett exempel för att hitta alla hashtable-nycklar och hashtable-värden.
Inmatning:
$testht = @( English = "85"; Tamil = "100"; maths = "100")
write-host("Printing all the hashtable keys")
$testht.keys
write-host("Printing all the hashtable values")
$testht.values
write-host("print Size")
$testht.Count
write-host("Add key-value")
$testht("Social") = "100"
write-host("Add key-value")
$testht.Add("ss", "110")
write-host("Size")
$testht.Count
write-host("Remove English")
$testht.Remove("English")
write-host("curentSize")
$testht.Count
write-host("sortinh by key")
$testht.GetEnumerator() | Sort-Object -Property key
Produktion:
Slutsats - Array i PowerShell
Den största fördelen med en matris är minneshantering. De kan nås direkt från cachen som hjälper till att snabbare hämta. De kan återanvändas, när det väl har förklarats kan de återanvändas flera gånger.
Rekommenderade artiklar
Detta är en guide till Array i PowerShell. Här diskuterar vi introduktionen och implementeringen av en matris, matrislista och hashtabell i PowerShell. Du kan också titta på följande artiklar för att lära dig mer -
- PowerShell vs CMD
- Topp 7 versioner av PowerShell
- Fördelar med array
- Nyckelskillnaden mellan PowerShell och Bash