Propriété d'indexeur d'extension
Mise à jour : novembre 2007
Fournit l'accès aux éléments individuels d'une collection.
object(index)
Éléments
object
Obligatoire. Collection requêtable. Autrement dit, une collection qui implémente IEnumerable<T> ou IQueryable<T>.(
Obligatoire. Dénote le démarrage de la propriété de l'indexeur.index
Obligatoire. Expression entière qui spécifie la position de base zéro d'un élément de la collection.)
Obligatoire. Dénote la fin de la propriété de l'indexeur.
Valeur de retour
Objet de l'emplacement spécifié dans la collection, ou Nothing si l'index est hors limites.
Notes
Pour accéder à différents éléments d'une collection, utilisez la propriété de l'indexeur d'extension. Cette propriété d'indexeur s'utilise en général sur la sortie de propriétés d'axe XML. L'enfant XML et propriétés de l'axe du descendant XML retournent des collections d'objets XElement ou une valeur d'attribut.
Le compilateur Visual Basic convertit les propriétés de l'indexeur de l'extension en appels à la méthodeElementAtOrDefault. Contrairement à un indexeur de table, la méthodeElementAtOrDefault retourne Nothing si l'index est hors limites. Ce comportement est utile lorsque vous ne pouvez pas déterminer facilement le nombre d'éléments d'une collection.
Cette propriété d'indexeur est semblable à une propriété d'extension dans le cas de collections qui implémentent IEnumerable<T> ou IQueryable<T> : elle n'est utilisée que si la collection n'a ni indexeur, ni propriété par défaut.
Pour accéder à la valeur du premier élément d'une collection d'objets XElement ou XAttribute, vous pouvez utiliser la propriété XML Value. Pour plus d'informations, consultez Propriété de valeur XML.
Exemple
L'exemple suivant indique comment utiliser l'indexeur d'extension pour accéder au deuxième nœud enfant dans une collection d'objets XElement. Pour accéder à la collection, utilisez la propriété d'axe enfant, qui obtient tous les éléments enfants nommés phone dans l'objet 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)
Ce code affiche le texte suivant :
Second phone number: 425-555-0145