IKeyValuePair<K,V> Interface

Definição

Representa um par chave-valor. Normalmente, isso é usado como um tipo de restrição quando você precisa encapsular dois parâmetros de tipo em um para atender às restrições de outra interface genérica.

.NET Essa interface aparece como System.Collections.Generic.KeyValuePair<TKey,TValue> (uma estrutura, não uma interface). Em qualquer caso em que um tipo de Windows Runtime tenha implementado IKeyValuePair<K,V>, o código .NET pode usar as APIs de KeyValuePair.

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 do Windows

Família de dispositivos
Windows 10 (introduzida na 10.0.10240.0)
API contract
Windows.Foundation.FoundationContract (introduzida na v1.0)

Comentários

Ao programar com o .NET, essa interface fica oculta e os desenvolvedores devem usar a estrutura System.Collections.Generic.KeyValuePair<TKey,TValue> . Em qualquer caso em que um tipo de Windows Runtime tenha implementado IKeyValuePair<K,V>, incluindo quando as interfaces herdaram IKeyValuePair<K,V> ou o usaram como uma restrição interna, o código .NET pode tratá-lo como um .NET KeyValuePair.

Pares chave-valor são usados na interface IMap<K,V> , quando herda IIterable<T>. Implementações práticas de IMap<K,V> são iteráveis e iterar ou chamar First/Current explicitamente retornará instâncias de IKeyValuePair<K,V> usando as mesmas restrições que a implementação de IMap<K,V> .

Funções de extensão C++/WinRT

Observação

Existem funções de extensão nos tipos de projeção C++/WinRT para determinadas APIs de Windows Runtime. Por exemplo, winrt::Windows::Foundation::IAsyncAction é o tipo de projeção C++/WinRT para IAsyncAction. As funções de extensão não fazem parte da superfície da ABI (interface binária do aplicativo) dos tipos de Windows Runtime reais, portanto, elas não são listadas como membros das APIs de Windows Runtime. Mas você pode chamá-los de dentro de qualquer projeto C++/WinRT. Consulte Funções C++/WinRT que estendem apIs de Windows Runtime.

operator==

Comparando dois objetos KeyValuePair , compare as chaves e os valores em vez de comparar as interfaces.

Associação estruturada (C++/WinRT)

IKeyValuePair<K, V> dá suporte à associação estruturada. Por exemplo,

auto&& [key, value] = kvp;

é equivalente a,

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

A associação estruturada é particularmente conveniente em loops baseados for em intervalo, permitindo iterar por meio dos pares chave/valor de um mapa.

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

Propriedades

Key

Obtém a chave do par chave-valor.

Value

Obtém o valor do par chave-valor.

Aplica-se a

Confira também