Właściwość indeksatora rozszerzenia (Visual Basic)

Zapewnia dostęp do poszczególnych elementów w kolekcji.

Składnia

object(index)  

generatora

Termin Definicja
object Wymagany. Kolekcja z możliwością wykonywania zapytań. Oznacza to, że kolekcja, która implementuje IEnumerable<T> lub IQueryable<T>.
( Wymagany. Określa początek właściwości indeksatora.
index Wymagany. Wyrażenie całkowite, które określa położenie elementu kolekcji na podstawie zera.
) Wymagany. Określa koniec właściwości indeksatora.

Wartość zwracana

Obiekt z określonej lokalizacji w kolekcji lub Nothing jeśli indeks jest poza zakresem.

Uwagi

Za pomocą właściwości indeksatora rozszerzeń można uzyskać dostęp do poszczególnych elementów w kolekcji. Ta właściwość indeksatora jest zwykle używana w danych wyjściowych właściwości osi XML. Właściwości osi podrzędnej XML i osi malejącej XML zwracają kolekcje XElement obiektów lub wartości atrybutu.

Kompilator języka Visual Basic konwertuje właściwości indeksatora rozszerzeń na wywołania ElementAtOrDefault metody . W przeciwieństwie do indeksatora tablicy metoda zwracaNothing, ElementAtOrDefault jeśli indeks jest poza zakresem. To zachowanie jest przydatne, gdy nie można łatwo określić liczby elementów w kolekcji.

Ta właściwość indeksatora jest jak właściwość rozszerzenia dla kolekcji implementujących IEnumerable<T> lub IQueryable<T>: jest używana tylko wtedy, gdy kolekcja nie ma indeksatora lub właściwości domyślnej.

Aby uzyskać dostęp do wartości pierwszego elementu w kolekcji XElement obiektów lub XAttribute , możesz użyć właściwości XML Value . Aby uzyskać więcej informacji, zobacz Właściwość wartości XML.

Przykład

W poniższym przykładzie pokazano, jak za pomocą indeksatora rozszerzeń uzyskać dostęp do drugiego węzła podrzędnego XElement w kolekcji obiektów. Dostęp do kolekcji jest uzyskiwany przy użyciu właściwości osi podrzędnej, która pobiera wszystkie elementy podrzędne o nazwie phone w contact obiekcie .

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)

Ten kod wyświetla następujący tekst:

Second phone number: 425-555-0145

Zobacz też