Partilhar via


Propriedade Extension Indexer (Visual Basic)

Fornece acesso a elementos individuais em uma coleção.

Sintaxe

object(index)  

Partes

Termo Definição
object Obrigatório. Uma coleção consultável. Ou seja, uma coleção que implementa IEnumerable<T> ou IQueryable<T>.
( Obrigatório. Indica o início da propriedade do indexador.
index Obrigatório. Uma expressão inteira que especifica a posição baseada em zero de um elemento da coleção.
) Obrigatório. Indica o final da propriedade do indexador.

Devolver Valor

O objeto do local especificado na coleção ou Nothing se o índice estiver fora do intervalo.

Observações

Você pode usar a propriedade do indexador de extensão para acessar elementos individuais em uma coleção. Essa propriedade de indexador é normalmente usada na saída de propriedades do eixo XML. As propriedades do eixo filho XML e do eixo descendente XML retornam coleções de objetos ou um valor de XElement atributo.

O compilador do Visual Basic converte propriedades do indexador de extensão em chamadas para o ElementAtOrDefault método. Ao contrário de um indexador de matriz, o ElementAtOrDefault método retorna Nothing se o índice estiver fora do intervalo. Esse comportamento é útil quando você não pode determinar facilmente o número de elementos em uma coleção.

Esta propriedade indexer é como uma propriedade de extensão para coleções que implementam IEnumerable<T> ou IQueryable<T>: ela é usada somente se a coleção não tiver um indexador ou uma propriedade padrão.

Para acessar o valor do primeiro elemento em uma coleção de XElement ou XAttribute objetos, você pode usar a propriedade XML Value . Para obter mais informações, consulte Propriedade de valor XML.

Exemplo

O exemplo a seguir mostra como usar o indexador de extensão para acessar o segundo nó filho em uma coleção de XElement objetos. A coleção é acessada usando a propriedade de eixo filho, que obtém todos os contact elementos filho nomeados phone no objeto.

Dim contact As XElement = 
    <contact>
        <name>Patrick Hines</name>
        <phone type="home">206-555-0144</phone>
        <phone type="work">425-555-0145</phone>
    </contact>

Console.WriteLine("Second phone number: " & contact.<phone>(1).Value)

Este código exibe o seguinte texto:

Second phone number: 425-555-0145

Consulte também