IVectorView<T> Интерфейс

Определение

Представляет неизменяемое представление в векторе.

.ЧИСТАЯ Этот интерфейс отображается в коде .NET как System.Collections.Generic.IReadOnlyList<T> из-за проекции языка .NET. В любом случае, если тип среда выполнения Windows реализует IVectorView<T>, код .NET может использовать API IReadOnlyList<T>.

public interface class IVectorView : IIterable<T>
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.FoundationContract, 65536)]
/// [Windows.Foundation.Metadata.Guid(3152149068, 45283, 17795, 186, 239, 31, 27, 46, 72, 62, 86)]
template <typename T>
struct IVectorView : IIterable<T>
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.FoundationContract), 65536)]
[Windows.Foundation.Metadata.Guid(3152149068, 45283, 17795, 186, 239, 31, 27, 46, 72, 62, 86)]
public interface IReadOnlyList<T> : IEnumerable<T>
Public Interface IReadOnlyList(Of T)
Implements IEnumerable(Of T)

Параметры типа

T
Атрибуты
Реализации

Требования к Windows

Семейство устройств
Windows 10 (появилось в 10.0.10240.0)
API contract
Windows.Foundation.FoundationContract (появилось в v1.0)

Комментарии

Для коллекций для чтения и записи интерфейс IVectorView<T> по-прежнему актуален, так как метод IVector.GetView возвращает экземпляр IVectorView<T> .

Если базовая коллекция изменяется, методы и свойства интерфейса IVectorView<T> могут вызвать исключение.

C++/WinRT Если базовая коллекция была изменена, методы и свойства могут вызвать hresult_changed_state исключение.

C++/CX Если базовая коллекция была изменена, методы и свойства могут вызвать ChangedStateException исключение.

При программировании с помощью .NET этот интерфейс скрыт, и разработчики должны использовать интерфейс IReadOnlyList<T> , если они хотят реализовать тип вектора или списка только для чтения. В любом случае, когда тип среда выполнения Windows реализовал IVectorView<T>, код .NET может использовать API IReadOnlyList<T>. Сюда входят все существующие API среда выполнения Windows, а также сценарии, такие как использование API среда выполнения Windows компонентов, изначально реализованных в расширениях компонентов Visual C++ (C++/CX) из приложения C# или Visual Basic.

Функции расширения C++/WinRT

Примечание

Функции расширения существуют в типах проекций C++/WinRT для определенных API среда выполнения Windows. Например, winrt::Windows::Foundation::IAsyncAction — это тип проекции C++/WinRT для IAsyncAction. Функции расширения не являются частью поверхности двоичного интерфейса приложения (ABI) фактических типов среда выполнения Windows, поэтому они не перечислены как члены СРЕДА ВЫПОЛНЕНИЯ WINDOWS API. Но их можно вызывать из любого проекта C++/WinRT. См. статью Функции C++/WinRT, расширяющие среда выполнения Windows API.

auto begin() const;

Возвращает итератор к первому элементу коллекции для использования в алгоритмах C++, таких как циклы на основе for диапазона.

auto end() const;

Возвращает итератор после последнего элемента коллекции для использования в алгоритмах C++, таких как циклы на основе for диапазона.

Наследование интерфейса

IVectorView наследует IIterable. Типы, реализующие IVectorView, также реализуют члены интерфейса IIterable. Аналогичным образом, если вы используете .NET, существует поддержка IEnumerable<T>.

Свойства

Size

Возвращает количество элементов в векторном представлении.

Методы

GetAt(UInt32)

Возвращает элемент по указанному индексу в векторном представлении.

GetMany(UInt32, T[])

Извлекает несколько элементов из векторного представления, начиная с заданного индекса.

C++/WinRT Правильный синтаксис для проекции языка C++/WinRT — uint32_t GetMany(uint32_t startIndex, winrt::array_view<T> items);.

IndexOf(T, UInt32)

Извлекает индекс указанного элемента в векторном представлении.

Применяется к