Поделиться через


Свойство-индексатор расширения (Visual Basic)

Обеспечивает доступ к отдельным элементам коллекции.

Синтаксис

object(index)  

Детали

Термин Определение
object Обязательный. Запрашиваемая коллекция. То есть коллекция, реализующая IEnumerable<T> или IQueryable<T>.
( Обязательный. Обозначает начало свойства индексатора.
index Обязательный. Целочисленное выражение, указывающее отсчитываемое от нуля положение элемента коллекции.
) Обязательный. Обозначает конец свойства индексатора.

Возвращаемое значение

Объект из указанного расположения в коллекции или Nothing если индекс выходит за пределы диапазона.

Замечания

Свойство индексатора расширений можно использовать для доступа к отдельным элементам в коллекции. Обычно это свойство индексатора используется для выходных данных свойств оси XML. Свойства дочерней XElement и xml-оси потомков возвращают коллекции объектов или значение атрибута.

Компилятор Visual Basic преобразует свойства индексатора расширений в вызовы ElementAtOrDefault метода. В отличие от индексатора массива, метод возвращаетсяNothing, ElementAtOrDefault если индекс выходит за пределы диапазона. Это поведение полезно, если невозможно легко определить количество элементов в коллекции.

Это свойство индексатора похоже на свойство расширения для коллекций, реализующих IEnumerable<T> или IQueryable<T>: используется только в том случае, если у коллекции нет индексатора или свойства по умолчанию.

Чтобы получить доступ к значению первого элемента в коллекции или объектахXElement, можно использовать свойство XMLValue.XAttribute Дополнительные сведения см. в разделе "Свойство значения XML".

Пример

В следующем примере показано, как использовать индексатор расширений XElement для доступа ко второму дочернему узлу в коллекции объектов. Доступ к коллекции осуществляется с помощью свойства дочерней оси, которое получает все дочерние элементы, именованные phone в объекте 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)

Этот пример кода отображает следующий текст:

Second phone number: 425-555-0145

См. также