Partager via


IKeyValuePair<K,V> Interface

Définition

Représente une paire clé-valeur. Il est généralement utilisé comme type de contrainte lorsque vous devez encapsuler deux paramètres de type en un pour satisfaire les contraintes d’une autre interface générique.

.NET Cette interface apparaît sous la forme System.Collections.Generic.KeyValuePair<TKey,TValue> (une structure, pas une interface). Dans tous les cas où un type Windows Runtime a implémenté IKeyValuePair<K,V>, le code .NET peut utiliser les API de KeyValuePair à la place.

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)

Paramètres de type

K
V
Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.FoundationContract (introduit dans v1.0)

Remarques

Lors de la programmation avec .NET, cette interface est masquée et les développeurs doivent utiliser la structure System.Collections.Generic.KeyValuePair<TKey,TValue> . Dans tous les cas où un type Windows Runtime a implémenté IKeyValuePair<K,V>, y compris lorsque les interfaces ont hérité IKeyValuePair<K,V> ou l’ont utilisé comme contrainte interne, le code .NET peut le traiter comme un .NET KeyValuePair.

Les paires clé-valeur sont utilisées dans l’interface IMap<K,V> lorsqu’elle hérite de IIterable<T>. Les implémentations pratiques d’IMap<K,V> sont itérables, et l’itération ou l’appel explicite de First/Current retourne des instances de IKeyValuePair<K,V> en utilisant les mêmes contraintes que l’implémentation IMap<K,V> .

Fonctions d’extension C++/WinRT

Notes

Des fonctions d’extension existent sur les types de projection C++/WinRT pour certaines API Windows Runtime. Par exemple, winrt ::Windows ::Foundation ::IAsyncAction est le type de projection C++/WinRT pour IAsyncAction. Les fonctions d’extension ne font pas partie de la surface d’interface binaire d’application (ABI) des types Windows Runtime réels. Elles ne sont donc pas répertoriées en tant que membres des API Windows Runtime. Mais vous pouvez les appeler à partir de n’importe quel projet C++/WinRT. Consultez Fonctions C++/WinRT qui étendent Windows Runtime API.

operator==

En comparant deux objets KeyValuePair , comparez les clés et les valeurs au lieu de comparer les interfaces.

Liaison structurée (C++/WinRT)

IKeyValuePair<K, V> prend en charge la liaison structurée. Par exemple,

auto&& [key, value] = kvp;

équivaut à,

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

La liaison structurée est particulièrement pratique dans les boucles basées sur for une plage, ce qui vous permet d’itérer à travers les paires clé/valeur d’une carte.

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

Propriétés

Key

Obtient la clé de la paire clé-valeur.

Value

Obtient la valeur de la paire clé-valeur.

S’applique à

Voir aussi