Condividi tramite


IKeyValuePair<K,V> Interfaccia

Definizione

Rappresenta una coppia chiave-valore. Viene in genere usato come tipo di vincolo quando è necessario incapsulare due parametri di tipo in uno per soddisfare i vincoli di un'altra interfaccia generica.

.NET Questa interfaccia viene visualizzata come System.Collections.Generic.KeyValuePair<TKey,TValue> (una struttura, non un'interfaccia). In ogni caso in cui un tipo di Windows Runtime ha implementato IKeyValuePair K,V>, il codice .NET può usare invece le API di 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)

Parametri di tipo

K
V
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.FoundationContract (è stato introdotto in v1.0)

Commenti

Durante la programmazione con .NET, questa interfaccia è nascosta e gli sviluppatori devono usare la struttura System.Collections.Generic.KeyValuePair<TKey,TValue> . In ogni caso in cui un tipo Windows Runtime ha implementato IKeyValuePair<K,V>, incluso quando le interfacce hanno ereditato IKeyValuePair<K,V> o lo usano come vincolo interno, il codice .NET può considerarlo come .NET KeyValuePair.

Le coppie chiave-valore vengono usate nell'interfaccia IMap<K,V> , quando eredita IIterable<T>. Le implementazioni pratiche di IMap<K,V> sono iterabili e l'iterazione o la chiamata di First/Current restituirà in modo esplicito le istanze di IKeyValuePair<K,V> usando gli stessi vincoli dell'implementazione di IMap<K,V> .

Funzioni di estensione C++/WinRT

Nota

Le funzioni di estensione esistono nei tipi di proiezione C++/WinRT per determinate API di Windows Runtime. Ad esempio, winrt::Windows::Foundation::IAsyncAction è il tipo di proiezione C++/WinRT per IAsyncAction. Le funzioni di estensione non fanno parte della superficie ABI (Application Binary Interface) dei tipi di Windows Runtime effettivi, quindi non sono elencati come membri delle API Windows Runtime. Ma puoi chiamarli da qualsiasi progetto C++/WinRT. Vedi Funzioni C++/WinRT che estendono Windows Runtime API.

operator==

Confrontando due oggetti KeyValuePair , confrontare le chiavi e i valori anziché confrontare le interfacce.

Associazione strutturata (C++/WinRT)

IKeyValuePair<K, V> supporta l'associazione strutturata. Ad esempio,

auto&& [key, value] = kvp;

equivale a,

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

L'associazione strutturata è particolarmente utile nei cicli basati su for intervalli, consentendo di scorrere le coppie chiave/valore di una mappa.

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

Proprietà

Key

Ottiene la chiave della coppia chiave-valore.

Value

Ottiene il valore della coppia chiave-valore.

Si applica a

Vedi anche