Freigeben über


IKeyValuePair<K,V> Schnittstelle

Definition

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.

Gilt für:

Weitere Informationen