IKeyValuePair<K,V> Interfaccia
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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. |