IVectorView<T> 接口

定义

表示向量的不可变视图。

。网 由于 .NET 语言投影,此接口在 .NET 代码中显示为 System.Collections.Generic.IReadOnlyList<T> 。 在Windows 运行时类型已实现 IVectorView<T> 的情况下,.NET 代码都可以改用 IReadOnlyList<T> 的 API。

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 代码都可以改用 IReadOnlyList<T> 的 API。 这包括所有现有的 Windows 运行时 API 以及方案,例如使用最初在 Visual C++ 组件扩展中实现的Windows 运行时组件的 API, (C# 或 Visual Basic 应用中的 C++/CX) 。

C++/WinRT 扩展函数

注意

某些Windows 运行时 API 的 C++/WinRT 投影类型上存在扩展函数。 例如, winrt::Windows::Foundation::IAsyncActionIAsyncAction 的 C++/WinRT 投影类型。 扩展函数不是应用程序二进制接口的一部分, (ABI) 实际Windows 运行时类型的图面,因此它们不会列为Windows 运行时 API 的成员。 但可以从任何 C++/WinRT 项目中调用它们。 请参阅扩展Windows 运行时 API 的 C++/WinRT 函数

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)

检索向量视图中指定项的索引。

适用于