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