Propriedade do indexador de extensão (Visual Basic)

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

Sintaxe

object(index)  

Partes

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

Valor Retornado

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

Comentários

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

O compilador do Visual Basic converte as propriedades do indexador de extensão em chamadas para o método ElementAtOrDefault. Ao contrário de um indexador de matriz, o método ElementAtOrDefault retornará 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.

Essa propriedade do indexador é 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 objetos XElement ou XAttribute, você pode usar a propriedade do Value XML. Para obter mais informações, consulte Propriedade do 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 objetos XElement. A coleção é acessada usando a propriedade do eixo filho, que obtém todos os elementos filho nomeados phone no objeto contact.

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

Confira também