IKeyValuePair<K,V> Interfaz

Definición

Representa un par clave-valor. Normalmente se usa como un tipo de restricción cuando es necesario encapsular dos parámetros de tipo en uno para satisfacer las restricciones de otra interfaz genérica.

.RED Esta interfaz aparece como System.Collections.Generic.KeyValuePair<TKey,TValue> (una estructura, no una interfaz). En cualquier caso en el que un tipo de Windows Runtime haya implementado IKeyValuePair<K,V>, el código .NET puede usar las API de KeyValuePair en su lugar.

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)

Parámetros de tipo

K
V
Atributos

Requisitos de Windows

Familia de dispositivos
Windows 10 (se introdujo en la versión 10.0.10240.0)
API contract
Windows.Foundation.FoundationContract (se introdujo en la versión v1.0)

Comentarios

Al programar con .NET, esta interfaz está oculta y los desarrolladores deben usar la estructura System.Collections.Generic.KeyValuePair<TKey,TValue> . En cualquier caso en el que un tipo de Windows Runtime haya implementado IKeyValuePair<K,V>, incluidos los casos en que las interfaces han heredado IKeyValuePair<K,V> o lo han usado como restricción interna, el código .NET puede tratarlo como un .NET KeyValuePair.

Los pares clave-valor se usan en la interfaz IMap<K,V>, cuando hereda T iIterable<.> Las implementaciones prácticas de IMap<K,V> son iterables y la iteración o llamada a First/Current devolverá explícitamente instancias de IKeyValuePair<K,V> con las mismas restricciones que la implementación de IMap<K,V> .

Funciones de extensión de C++/WinRT

Nota:

Existen funciones de extensión en los tipos de proyección de C++/WinRT para determinadas API de Windows Runtime. Por ejemplo, winrt::Windows::Foundation::IAsyncAction es el tipo de proyección de C++/WinRT para IAsyncAction. Las funciones de extensión no forman parte de la superficie de la interfaz binaria de la aplicación (ABI) de los tipos de Windows Runtime reales, por lo que no se muestran como miembros de las API de Windows Runtime. Pero puedes llamarlos desde cualquier proyecto de C++/WinRT. Consulta Funciones de C++/WinRT que amplían las API de Windows Runtime.

operator==

Comparando dos objetos KeyValuePair , compara las claves y los valores en lugar de comparar las interfaces.

Enlace estructurado (C++/WinRT)

IKeyValuePair<K, V> admite el enlace estructurado. Por ejemplo,

auto&& [key, value] = kvp;

es equivalente a,

auto key = kvp.Key();
auto value = kvp.Value();

El enlace estructurado es especialmente conveniente en bucles basados en for intervalos, lo que le permite recorrer en iteración los pares clave-valor de un mapa.

winrt::Windows::Foundation::Collections::IMap<K, V> map;
for (auto&& [key, value] : map) { ... }

Propiedades

Key

Obtiene la clave del par clave-valor.

Value

Obtiene el valor del par clave-valor.

Se aplica a

Consulte también