Sobre Arrays

0 Comments
  • 08/26/2020
  • 14 minutos para ler
    • S
    • s
    • c

Breve Descrição

Descreve as matrizes, que são estruturas de dados projetado para storecollections de itens.

descrição longa

uma matriz é uma estrutura de dados que é projetada para armazenar uma coleção de itens.Os itens podem ser do mesmo tipo ou tipos diferentes.

começando no Windows PowerShell 3.,0, uma coleção de zero ou um objeto hassome propriedades de arrays.

Criar e inicializar um array

Para criar e inicializar um array, atribuir vários valores a uma variável. Os valores armazenados no array são delimitados com uma vírgula E separados do nome variável pelo operador de atribuição (=).,

Por exemplo, para criar um array chamado $A que contém os sete numérico (int)valores de 22, 5, 10, 8, 12, 9, e 80, tipo:

A vírgula também pode ser usado para inicializar um único item de matriz colocando thecomma antes de o item único.

Por exemplo, para criar um único item do array chamado $B que contém o singlevalue de 7, tipo:

Você também pode criar e inicializar um array usando o intervalo do operador (..).,O exemplo seguinte cria um array contendo os valores 5 a 8.

Como resultado, $C contém quatro valores: 5, 6, 7 e 8.

Quando nenhum tipo de dados é especificado, PowerShell cria cada array como um objectarray (sistema.Objecto). Para determinar o tipo de dados de um array, use o método theGetType ()., Por exemplo, para determinar o tipo de dados de $Aarray, tipo:

Para criar uma rigidez de matriz, que é um array que pode conter onlyvalues de um determinado tipo, converter a variável como um tipo de matriz, tais asstring, longo, ou int32. Para lançar um array, precede o nome variável com um tipo de array entre parênteses., Por exemplo, para criar a32-bit integer array chamado $ia que contém quatro números inteiros (1500, 2230, 3350,e 4000), tipo:

Como resultado, o $ia array pode conter somente números inteiros.

Você pode criar matrizes que são moldadas para qualquer tipo suportado na Microsoft.NET Framework. Por exemplo, os objetos que Get-Process recupera processos de representação são do sistema.Diagnostico.Tipo de processo., Para criar um array de objetos de processo, indique o seguinte comando:

o operador de sub-expressão do array

o operador de sub-expressão do array cria um array a partir das declarações nele contidas. O que quer que a declaração dentro do operador produz, o operador irá colocá-lo em um array. Mesmo que haja zero ou um objecto.

a sintaxe do operador array é a seguinte:

você pode usar o operador array para criar um array de zero ou um objeto., Forexample:

A matriz do operador é útil em scripts quando você está recebendo objetos, mas não sei quantos objetos você chegar. Por exemplo:

Para mais informações sobre o operador de sub-expressão da matriz, verabout_operadores.

acessando e usando elementos array

lendo um array

você pode se referir a um array usando seu nome de variável. Para exibir todos os elementos da matriz, digite o nome da matriz., Por exemplo, supondo $a é anarray contendo inteiros 0, 1, 2, até 9; escrever:

Você pode consultar os elementos de uma matriz usando um índice, início atposition 0. Incluir o número de índice entre parêntesis., Por exemplo, para exibir oprimeiro elemento $a array, tipo:

Para exibir o terceiro elemento $a array, digite:

Você pode recuperar parte da matriz usando um intervalo de operador para o índice. Por exemplo, para recuperar o segundo para o quinto elementos do array, você wouldtype:

números negativos contam do final do array., Por exemplo,” -1 ” refere-se ao último elemento da matriz. Para mostrar os últimos três elementos do array, por ordem ascendente do Índice, tipo:

Se escrever índices negativos por ordem decrescente, o resultado muda.

No entanto, seja cauteloso ao usar esta notação. Os ciclos de notação desde o limite do fim até o início do array.,

pode utilizar o operador plus (+) para combinar gamas com uma lista de elementos numa matriz. Por exemplo, para exibir os elementos em posições de índice 0, 2, and4 a 6, tipo:

além disso, a lista de vários intervalos e elementos individuais você pode usar o plusoperator., Por exemplo, a lista de elementos de zero a dois, quatro, seis, e theelement na oitava posição tipo:

Iterações sobre os elementos de matriz

Você também pode usar construções de loop, como o ForEach, For e While loops, torefer para os elementos em uma matriz. Por exemplo, para usar um loop ForEach todisplay os elementos $a array, tipo:

O loop Foreach percorre o array e retorna cada valor em thearray até chegar o final da matriz.,

O laço For é útil quando você está incrementando contadores ao examinar os elementos em uma matriz. Por exemplo, para usar um laço For para retornar todos os outros valores em um array, tipo:

você pode usar um laço While para mostrar os elementos em um array até que uma versão definida não seja mais verdadeira., Por exemplo, para exibir os elementos $aarray, enquanto o índice da matriz é menor do que 4, tipo:

Propriedades de matrizes

ou a Contagem de Comprimento ou LongLength

Para determinar quantos itens estão em uma matriz, use o Length propriedade ou o seuCount alias. Longlength é útil se a matriz contém mais de 2,147,483,647 elementos.

Rank

Devolve o número de dimensões na lista., A maioria das matrizes em PowerShell só tem uma dimensão. Mesmo quando pensa que está a construir um array multidimensional; como o seguinte exemplo:

o exemplo seguinte mostra como criar um array verdadeiramente multidimensional utilizando a estrutura.Net.

Methods of arrays

Clear

define todos os valores dos elementos para o valor por omissão do tipo de elemento do array.O método Clear() não repõe o tamanho do array.,

no exemplo seguinte $a é uma matriz de objetos.

neste exemplo, $intA é explicitamente escreveu para conter números inteiros.

ForEach

Permite iterar sobre todos os elementos na matriz e executar uma determinada operationfor cada elemento da matriz.

O método ForEach tem várias sobrecargas que realizam operações diferentes.,

ForEach(expressão scriptblock)

ForEach (expressão scriptblock, argumentos object)

este método foi adicionado em PowerShell v4.

Nota

a sintaxe requer o uso de um bloco de script. Parênteses são opcionais se o scriptblock for o único parâmetro. Além disso, não deve haver um espaço entre o método e o parêntesis de abertura ou brace.

o exemplo seguinte mostra como usar o método foreach. Neste caso, ointent é gerar o valor quadrado dos elementos na matriz.,

assim como -ArgumentList parâmetro ForEach-Object argumentsparâmetro permite a passagem de uma matriz de argumentos para um script blockconfigured para aceitá-las.

para mais informações sobre o comportamento do ArgumentList, consulte a sua versão.,

ForEach(tipo convertToType)

ForEach método pode ser usado para rapidamente elenco elementos para uma differenttype; o exemplo a seguir mostra como converter uma lista de seqüência de datas para tipo.

ForEach(string propertyName)

ForEach(string propertyName, objeto newValue)

ForEach método também pode ser usado para recuperar rapidamente, ou conjunto de propertyvalues para cada item na coleção.,

ForEach(string methodName)

ForEach(string methodName, object argumentos)

por último, ForEach métodos podem ser usados para executar um método em cada item na coleção.

assim como -ArgumentList parâmetro ForEach-Object argumentsparâmetro permite a passagem de uma matriz de argumentos para um script blockconfigured para aceitá-las.

Nota

começando no Windows PowerShell 3.,0 a obtenção de propriedades e métodos de execução para cada item de uma colecção também pode ser realizada utilizando “métodos de objectos escalares e Colecções”. poderá ler mais sobre isso aqui.

onde

permite filtrar ou seleccionar os elementos da matriz. O script deve evaluateto qualquer coisa diferente de zero (0), cadeia de caracteres vazia, $false ou $null parao elemento para mostrar após o Where

não Existe uma definição para o Where método.,

Nota

A sintaxe requer o uso de um bloco de script. Parênteses são opcionais se o scriptblock for o único parâmetro. Além disso, não deve haver um espaço entre o método e o parêntesis de abertura ou brace.

Expression é scriptblock que é necessário para a filtragem, o modeargumento opcional permite adicionais recursos de seleção, e onumberToReturn argumento opcional permite a capacidade para limitar como muitos itemsare retornado do filtro.,p>Os valores aceitáveis para o mode:

  • Padrão (0) – retorna todos os itens
  • Primeiro (1) – retorna o primeiro item
  • Último (2) – retorna o último item
  • SkipUntil (3) – Ignorar itens até que a condição seja verdadeira, o retorno a remainingitems
  • Até (4) – retorna todos os itens até que a condição seja true
  • Split (5) – retorna um array de dois elementos
    • O primeiro elemento contém itens correspondentes
    • O segundo elemento contém os itens restantes

O exemplo a seguir mostra como selecionar todos os números ímpares da matriz.,

este exemplo mostra como seleccionar as cordas que não estão vazias.

por Omissão

Default modo de filtros de itens usando o Expression scriptblock.

Se for fornecido umnumberToReturn, indica o número máximo de itens a retornar.,

Nota

O Default modo e First modo de retornar a primeira(numberToReturn) itens, e pode ser usado de forma intercambiável.

Last

SkipUntil

The SkipUntil mode skips all objects in a collection until an object passes the script block expression filter. Em seguida, retorna todos os restantes itens de coleta sem testá-los. Apenas um item que passa é testado.

isto significa que a colecção devolvida contém itens que passam e não passam que não foram testados.,

O número de itens devolvidos pode ser limitado passando um valor para o argumentonumberToReturn.

Até

Until modo inverte o SkipUntil modo. Devolve todos os itens na recolha até que um item passe a expressão do bloco do programa. Uma vez que uma itempasse a expressão scriptblock, o método Where interrompe o processamento de itens.

isto significa que você recebe o primeiro conjunto de itens que não passam do métodoWhere., Depois de um item passar, o resto não é testado ou devolvido.

O número de itens devolvidos pode ser limitado passando um valor para o argumentonumberToReturn.

Nota

Os Until e SkipUntil operar sob a premissa de NÃO testar um batchof itens.

Until devolve os itens antes da primeira passagem.

SkipUntil devolve todos os itens após a primeira passagem, incluindo o primeiro item de passagem.,

divide

o Split divide o modo, ou agrupa os itens de colecção em duas recolhas separadas. Aqueles que passam a expressão scriptblock, e aqueles que não passam.

Se for especificado umnumberToReturn, a primeira colecção contém os itens deassagem, não excedendo o valor especificado.

os objectos restantes, mesmo aqueles que passam pelo filtro de expressão, são retirados na segunda colecção.,

Obter os membros de um array

Para obter as propriedades e métodos de uma matriz, tais como o Comprimento da propriedade e método SetValue, use o parâmetro InputObject de Get-Membercmdlet.

Quando canaliza uma lista para Get-Member, o PowerShell envia os itens de uma vez e Get-Member devolve o tipo de cada item da lista (ignorando as actualizações).

Quando usar o parâmetro InputObject, o Get-Member devolve os membros da lista.,

Por exemplo, o seguinte comando obtém os membros do $a arrayvariável.

Você também pode obter os membros de uma matriz digitando uma vírgula (,) antes de thevalue que é canalizada para o Get-Member cmdlet. A vírgula faz do array o segundo item em um array de array. O PowerShell pipes the arrays one ata time e Get-Member devolve os membros do array. Como os próximos dois exemplos.,

manipulando um array

você pode alterar os elementos de um array, adicionar um elemento a um array, e combinar os valores de duas array em um terceiro array.

Para alterar o valor de um determinado elemento em uma matriz, especifique o arrayname e o índice do elemento que você deseja alterar e, em seguida, usar theassignment operador (=) para especificar um novo valor para o elemento., Por exemplo,para alterar o valor do segundo item $a array (posição de índice 1) 10, tipo:

Você também pode usar o método SetValue de uma matriz para alterar o valor. Thefollowing exemplo muda o segundo valor (posição de índice 1) de $a arrayto 500:

Você pode usar o += operador para adicionar um elemento de uma matriz. O exemplo seguinte mostra como adicionar um elemento à matriz

.,

Nota

Quando você usar o += operador, PowerShell, na verdade, cria uma nova arraywith os valores da matriz original e o valor adicionado. Isso pode causar problemas de desempenho se a operação é repetida várias vezes ou o tamanho do array é muito grande.

não é fácil apagar elementos de uma lista, mas pode criar uma nova raia que contém apenas elementos seleccionados de uma lista existente., Por exemplo,para criar o $t array com todos os elementos $a array, exceto para thevalue na posição de índice 2, digite:

Para combinar duas matrizes em uma única matriz, use o operador do sinal de adição (+). O seguinte exemplo cria duas matrizes, combina-as, e então exibe a matriz combinada resultante.

Como resultado, o $z array contém 1, 3, 5 e 9.,

para excluir um array, atribua um valor de $null ao array. The followingcommand deletas the array in the $a variable.

$a = $null

Você também pode usar o Remove-Item cmdlet, mas a atribuição de um valor de $null isfaster, especialmente para matrizes grandes.

Arrays of zero or one

Beginning in Windows PowerShell 3.0, a collection of zero or one object has the Count and Length property. Além disso, você pode indexar em uma série de oneobject., Este recurso ajuda você a evitar erros de scripts que ocorrem quando um comando que espera uma coleção recebe menos de dois itens.

os seguintes exemplos demonstram esta característica.

Zero objetos

Um objeto

suporte de Indexação para o Sistema.Objetos tuplos

PowerShell 6.1 adicionou o suporte para o acesso indexado de objetos tuplos, semelhante a arrays.,Por exemplo:

Ao contrário de matrizes e outros objetos de coleção, objetos tuplos são tratados como um objeto único quando passam através da tubulação ou por parâmetros que suportam objetos.

para mais informações, consulte o sistema.Cadeia.

Veja também:

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


Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *