IKeyValuePair<K,V> 接口
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示键值对。 当需要将两个类型参数封装到一个类型参数以满足另一个泛型接口的约束时,这通常用作约束类型。
。网 此接口显示为 System.Collections.Generic.KeyValuePair<TKey,TValue> (结构,而不是接口) 。 在Windows 运行时类型已实现 IKeyValuePair<K,V> 的情况下,.NET 代码都可以改用 KeyValuePair 的 API。
public interface class IKeyValuePair
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.FoundationContract, 65536)]
/// [Windows.Foundation.Metadata.Guid(45422889, 49604, 19070, 137, 64, 3, 18, 181, 193, 133, 0)]
template <typename K, typename V>
struct IKeyValuePair
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.FoundationContract), 65536)]
[Windows.Foundation.Metadata.Guid(45422889, 49604, 19070, 137, 64, 3, 18, 181, 193, 133, 0)]
public interface KeyValuePair<K,V>
Public Interface KeyValuePair(Of K, V)
类型参数
- K
- V
- 属性
Windows 要求
设备系列 |
Windows 10 (在 10.0.10240.0 中引入)
|
API contract |
Windows.Foundation.FoundationContract (在 v1.0 中引入)
|
注解
使用 .NET 编程时,此接口是隐藏的,开发人员应使用 System.Collections.Generic.KeyValuePair<TKey,TValue> 结构。 如果Windows 运行时类型实现了 IKeyValuePair<K,V>,包括当接口继承了 IKeyValuePair<K,V> 或将其用作内部约束时,.NET 代码可以将它视为 .NET KeyValuePair。
键值对在 IMap<K,V> 接口继承 IIterable<T> 时使用。 IMap<K,V> 的实际实现是可迭代的,并且显式迭代或调用 First/Current 将使用与 IMap <K,V> 实现相同的约束返回 IKeyValuePair<K,V > 的实例。
C++/WinRT 扩展函数
注意
某些Windows 运行时 API 的 C++/WinRT 投影类型上存在扩展函数。 例如, winrt::Windows::Foundation::IAsyncAction 是 IAsyncAction 的 C++/WinRT 投影类型。 扩展函数不是应用程序二进制接口 (ABI) 实际Windows 运行时类型的图面的一部分,因此它们不会列为Windows 运行时 API 的成员。 但可以从任何 C++/WinRT 项目中调用它们。 请参阅扩展Windows 运行时 API 的 C++/WinRT 函数。
operator==
比较两个 KeyValuePair 对象,比较键和值,而不是比较接口。
结构化绑定 (C++/WinRT)
IKeyValuePair<K、V> 支持结构化绑定。 例如,
auto&& [key, value] = kvp;
等效于
auto key = kvp.Key();
auto value = kvp.Value();
结构化绑定在基于 for
范围的循环中特别方便,使你可以循环访问映射的键/值对。
winrt::Windows::Foundation::Collections::IMap<K, V> map;
for (auto&& [key, value] : map) { ... }
属性
Key |
获取键值对的键。 |
Value |
获取键值对的值。 |