Vlastnost indexeru rozšíření (Visual Basic)

Poskytuje přístup k jednotlivým prvkům v kolekci.

Syntaxe

object(index)  

Součástky

Pojem definice
object Povinný: Dotazovatelná kolekce. To znamená kolekce, která implementuje IEnumerable<T> nebo IQueryable<T>.
( Povinný: Označuje začátek vlastnosti indexeru.
index Povinný: Celočíselné výrazy, které určují nulovou pozici prvku kolekce.
) Povinný: Označuje konec vlastnosti indexeru.

Návratová hodnota

Objekt ze zadaného umístění v kolekci nebo Nothing pokud je index mimo rozsah.

Poznámky

Vlastnost indexeru rozšíření můžete použít pro přístup k jednotlivým prvkům v kolekci. Tato vlastnost indexeru se obvykle používá ve výstupu vlastností osy XML. Vlastnosti podřízené položky XML a sestupné osy XML vrací kolekce XElement objektů nebo hodnoty atributu.

Kompilátor jazyka Visual Basic převede vlastnosti indexeru rozšíření na volání metody ElementAtOrDefault . Na rozdíl od indexeru ElementAtOrDefault pole vrátí Nothing metoda, pokud je index mimo rozsah. Toto chování je užitečné, když nemůžete snadno určit počet prvků v kolekci.

Tato vlastnost indexeru je podobná vlastnosti rozšíření pro kolekce, které implementují IEnumerable<T> nebo IQueryable<T>: používá se pouze v případě, že kolekce nemá indexer nebo výchozí vlastnost.

Chcete-li získat přístup k hodnotě prvního prvku v kolekci XElement nebo XAttribute objektů, můžete použít vlastnost XML Value . Další informace naleznete v tématu Xml Value Property.

Příklad

Následující příklad ukazuje, jak použít indexer rozšíření pro přístup ke druhému podřízeného uzlu v kolekci XElement objektů. K kolekci se přistupuje pomocí vlastnosti podřízené osy, která získá všechny podřízené prvky pojmenované phone v objektu 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)

Tento kód zobrazí následující text:

Second phone number: 425-555-0145

Viz také