IKeyValuePair<K,V> Schnittstelle
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt ein Schlüssel-Wert-Paar dar. Dies wird in der Regel als Einschränkungstyp verwendet, wenn Sie zwei Typparameter in einen Kapseln müssen, um die Einschränkungen einer anderen generischen Schnittstelle zu erfüllen.
.NETTO Diese Schnittstelle wird als System.Collections.Generic.KeyValuePair<TKey,TValue> (eine Struktur, keine Schnittstelle) angezeigt. Wenn ein Windows-Runtime-Typ IKeyValuePair<K,V> implementiert hat, kann .NET-Code stattdessen die APIs von KeyValuePair verwenden.
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)
Typparameter
- K
- V
- Attribute
Windows-Anforderungen
Gerätefamilie |
Windows 10 (eingeführt in 10.0.10240.0)
|
API contract |
Windows.Foundation.FoundationContract (eingeführt in v1.0)
|
Hinweise
Beim Programmieren mit .NET ist diese Schnittstelle ausgeblendet, und Entwickler sollten die System.Collections.Generic.KeyValuePair<TKey,TValue-Struktur> verwenden. In jedem Fall, wenn ein Windows-Runtime-Typ IKeyValuePair<K,V> implementiert hat, einschließlich wenn Schnittstellen IKeyValuePair<K,V> geerbt oder als innere Einschränkung verwendet haben, kann .NET-Code ihn als .NET KeyValuePair behandeln.
Schlüssel-Wert-Paare werden in der IMap<K,V-Schnittstelle> verwendet, wenn sie IIterable<T> erbt. Praktische Implementierungen von IMap<K, V> sind iterierbar, und das Iterieren oder Aufrufen von First/Current explizit gibt Instanzen von IKeyValuePair<K,V> mit den gleichen Einschränkungen zurück wie die IMap<K,V-Implementierung> .
C++/WinRT-Erweiterungsfunktionen
Hinweis
Erweiterungsfunktionen sind für die C++/WinRT-Projektionstypen für bestimmte Windows-Runtime-APIs vorhanden. Winrt::Windows::Foundation::IAsyncAction ist beispielsweise der C++/WinRT-Projektionstyp für IAsyncAction. Die Erweiterungsfunktionen sind nicht Teil der ABI-Oberfläche (Application Binary Interface) der tatsächlichen Windows-Runtime-Typen, daher werden sie nicht als Member der Windows-Runtime-APIs aufgeführt. Sie können sie jedoch in jedem C++/WinRT-Projekt aufrufen. Weitere Informationen finden Sie unter C++/WinRT-Funktionen, die Windows-Runtime-APIs erweitern.
operator==
Vergleichen Sie zwei KeyValuePair-Objekte , vergleichen Sie die Schlüssel und Werte, anstatt die Schnittstellen zu vergleichen.
Strukturierte Bindung (C++/WinRT)
IKeyValuePair<K, V> unterstützt strukturierte Bindung. Beispiel:
auto&& [key, value] = kvp;
entspricht,
auto key = kvp.Key();
auto value = kvp.Value();
Strukturierte Bindung ist besonders praktisch in bereichsbasierten for
Schleifen, sodass Sie die Schlüssel-Wert-Paare einer Karte durchlaufen können.
winrt::Windows::Foundation::Collections::IMap<K, V> map;
for (auto&& [key, value] : map) { ... }
Eigenschaften
Key |
Ruft den Schlüssel des Schlüssel-Wert-Paares ab. |
Value |
Ruft den Wert des Schlüssel-Wert-Paares ab. |