IKeyValuePair<K,V> Interface
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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. |