Свойство-индексатор расширения
Обновлен: Ноябрь 2007
Предоставляет доступ к отдельным элементам в коллекции.
object(index)
Компоненты
object
Требуется. Коллекция, доступная для запросов. Это коллекция, которая реализует IEnumerable<T> или IQueryable<T>.(
Требуется. Обозначает начало свойства индексатора.index
Требуется. Целочисленное выражение, задающее позицию элемента коллекции (индексация ведется от нуля).)
Требуется. Обозначает конец свойства индексатора.
Возвращаемое значение
Возвращает объект из указанного места в коллекции, или Nothing, если индекс находится вне допустимого диапазона.
Заметки
Для доступа к отдельным элементам в коллекции можно использовать свойство индексатора расширения. Это свойство индексатора обычно используются на выходе свойства XML-оси. Свойства оси дочерних XML и XML-потомков возвращают коллекцию объектов XElement или значение атрибута.
Компилятор Visual Basic преобразует свойства индексатора расширения в вызовы метода ElementAtOrDefault. В отличие от индексатора массива, метод ElementAtOrDefault возвращает Nothing, если индекс выходит за пределы допустимого диапазона. Это полезно, когда не удается легко определить число элементов в коллекции.
Это свойство индексатора напоминает свойство для коллекций, которые реализуют IEnumerable<T> или IQueryable<T>: оно используется, только если в коллекции нет индексатора или свойства по умолчанию.
Для доступа к значению первого элемента в коллекции объектов XElement или XAttribute, можно использовать XML-свойство Value. Дополнительные сведения см. в разделе Свойство значения 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