Compartir a través de


Propiedad Indexer de extensión (Visual Basic)

Proporciona acceso a elementos individuales de una colección.

Sintaxis

object(index)  

Partes

Término Definición
object Obligatorio. Colección consultable. Es decir, una colección que implementa IEnumerable<T> o IQueryable<T>.
( Obligatorio. Indica el inicio de la propiedad indexador.
index Obligatorio. Expresión entera que especifica la posición de base cero de un elemento de la colección.
) Obligatorio. Indica el final de la propiedad del indexador.

Valor devuelto

Objeto de la ubicación especificada en la colección o Nothing si el índice está fuera del intervalo.

Observaciones

Puede usar la propiedad del indexador de extensión para tener acceso a elementos individuales de una colección. Esta propiedad del indexador se usa normalmente en la salida de las propiedades del eje XML. Las propiedades del eje secundario XML y del eje descendiente XML devuelven colecciones de objetos o un valor de XElement atributo.

El compilador de Visual Basic convierte las propiedades del indexador de extensión en llamadas al ElementAtOrDefault método . A diferencia de un indexador de matriz, el ElementAtOrDefault método devuelve Nothing si el índice está fuera del intervalo. Este comportamiento es útil cuando no se puede determinar fácilmente el número de elementos de una colección.

Esta propiedad de indexador es como una propiedad de extensión para colecciones que implementan IEnumerable<T> o IQueryable<T>: solo se usa si la colección no tiene un indexador o una propiedad predeterminada.

Para tener acceso al valor del primer elemento de una colección de XElement objetos o XAttribute , puede usar la propiedad XML Value . Para obtener más información, vea Xml Value Property.

Ejemplo

En el ejemplo siguiente se muestra cómo usar el indexador de extensión para acceder al segundo nodo secundario de una colección de XElement objetos . Se obtiene acceso a la colección mediante la propiedad del eje secundario, que obtiene todos los elementos secundarios denominados phone en el contact 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 muestra el texto siguiente:

Second phone number: 425-555-0145

Consulte también