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