Propiedad de indizador de extensión (Visual Basic)

Proporciona acceso a los elementos individuales de una recopilació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>.
( Necesario. Indica el inicio de la propiedad de indexador.
index Necesario. Expresión de entero que especifica la posición basada en cero de un elemento de la colección.
) Necesario. Indica el final de la propiedad de indexador.

Valor devuelto

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

Comentarios

Puede usar la propiedad del indexador de extensión para acceder 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 XElement o un valor de atributo.

El compilador de Visual Basic convierte las propiedades del indexador de extensión en llamadas al método ElementAtOrDefault. A diferencia de un indexador de matriz, el método ElementAtOrDefault 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 del indexador es como una propiedad de extensión para las colecciones que implementan IEnumerable<T> o IQueryable<T>: solo se usa si la colección no tiene un indexador o una propiedad predeterminada.

Para acceder al valor del primer elemento de una colección de objetos XElement o XAttribute, puede usar la propiedad XML Value. Para obtener más información, vea Value (Propiedad XML).

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 objetos XElement. Se accede a la colección mediante la propiedad del eje secundario, que obtiene todos los elementos secundarios denominados phone en el 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 muestra el siguiente texto:

Second phone number: 425-555-0145

Consulte también