IMap<K,V> 接口

定义

表示关联集合,也称为映射或字典。

。网 由于 .NET 语言投影,此接口在 .NET 代码中显示为 System.Collections.Generic.IDictionary<TKey,TValue> 。 如果Windows 运行时类型实现了 IMap<K,V>,则 .NET 代码都可以改用 IDictionary<TKey,TValue> 的 API。

public interface class IMap : IIterable<IKeyValuePair<K, V> ^>
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.FoundationContract, 65536)]
/// [Windows.Foundation.Metadata.Guid(1009329662, 34073, 17857, 170, 121, 25, 123, 103, 24, 193, 193)]
template <typename K, typename V>
struct IMap : IIterable<IKeyValuePair<K, V>>
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.FoundationContract), 65536)]
[Windows.Foundation.Metadata.Guid(1009329662, 34073, 17857, 170, 121, 25, 123, 103, 24, 193, 193)]
public interface IDictionary<K,V> : IEnumerable<KeyValuePair<K,V>>
Public Interface IDictionary(Of K, V)
Implements IEnumerable(Of KeyValuePair(Of K, V))

类型参数

K
V
属性
实现

Windows 要求

设备系列
Windows 10 (在 10.0.10240.0 中引入)
API contract
Windows.Foundation.FoundationContract (在 v1.0 中引入)

注解

使用 .NET 编程时,此接口是隐藏的,如果开发人员想要实现映射/字典类型,则应使用 System.Collections.Generic.IDictionary<TKey,TValue> 接口。 如果Windows 运行时类型实现了 IMap<K,V>,则 .NET 代码都可以改用 IDictionary<TKey,TValue> 的 API。 这包括所有现有的 Windows 运行时 API 和方案,例如使用最初在 Visual C++ 组件扩展中实现Windows 运行时组件的 API, (C# 或 Visual Basic 应用中的 C++/CX) 。

IMap<K,V> 接口表示键值对的集合,其中值可由其关联的键访问。 IMap<K,V> 的属性和方法支持字典类型功能,例如获取集合的大小,以及在集合中的指定位置添加和删除项。 此外,GetView 方法提供其可观测状态不会更改的地图快照。 如果需要在涉及 IMap<K,V> 的后续操作中引用集合的视图,快照非常有用。

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 范围的循环)中使用。

auto TryLookup(param_type<K> const& key) const;

尝试 使用键查找映射中的元素。 对于引用类型,如果找到,则返回值,如果未找到, nullptr 则返回值。 对于值类型, 返回 std::optional<V>,如果找到该值,则保留值;如果未找到,则不具有任何值。

bool TryRemove(param_type<K> const& key) const;

使用 键移除映射中的元素(如果存在)。 true如果找到并删除了元素,则返回 。 false如果未找到元素,则返回 。

接口继承

IMap<K,V> 使用使用相同的键和值类型的 IKeyValuePair 约束继承 IIterable。 实现 IMap<K,V> 的类型还实现 IIterable 的接口成员, IKeyValuePair 类型约束共享相同的键和值。 同样,如果使用 .NET,则支持 IEnumerabe<T>,其约束类型为 KeyValuePair ,该密钥和值类型与 IDictionary<TKey,TValue> 实现相同。

属性

Size

获取映射中的项数。

方法

Clear()

从映射中删除所有项。

GetView()

返回地图的不可变视图。

HasKey(K)

确定映射是否包含指定的键。

Insert(K, V)

插入或替换地图中的项。

Lookup(K)

返回映射中指定键处的项。

Remove(K)

从映射中删除项。

适用于

另请参阅