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