IKeyValuePair<K,V> インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
キーと値のペアを表します。 これは通常、別のジェネリック インターフェイスの制約を満たすために 2 つの型パラメーターを 1 つにカプセル化する必要がある場合に、制約型として使用されます。
。ネット このインターフェイスは 、System.Collections.Generic.KeyValuePair<TKey,TValue> (インターフェイスではなく構造体) として表示されます。 Windows ランタイム型で IKeyValuePair<K,V> が実装されている場合は、.NET コードで代わりに KeyValuePair の API を使用できます。
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)
型パラメーター
- K
- V
- 属性
Windows の要件
デバイス ファミリ |
Windows 10 (10.0.10240.0 で導入)
|
API contract |
Windows.Foundation.FoundationContract (v1.0 で導入)
|
注釈
.NET を使用してプログラミングする場合、このインターフェイスは非表示になり、開発者は System.Collections.Generic.KeyValuePair<TKey,TValue 構造体を> 使用する必要があります。 インターフェイスが IKeyValuePair K,V を継承した場合や内部制約として使用された場合など、Windows ランタイム型が IKeyValuePair<<K,V>> を実装している場合は、.NET コードはそれを .NET KeyValuePair として扱うことができます。
キーと値のペアは、IIterable<T> を継承するときに、IMap<K,V> インターフェイスで使用されます。 IMap<K,V> の実際の実装は反復可能であり、First/Current を明示的に反復処理または呼び出すと、IMap<K,V 実装と同じ制約を使用して IKeyValuePair<K,V>> のインスタンスが返されます。
C++/WinRT 拡張機能関数
注意
拡張関数は、特定のWindows ランタイム API の C++/WinRT プロジェクション型に存在します。 たとえば、 winrt::Windows::Foundation::IAsyncAction は 、IAsyncAction の C++/WinRT プロジェクション型です。 拡張関数は、実際のWindows ランタイム型のアプリケーション バイナリ インターフェイス (ABI) サーフェスの一部ではないため、Windows ランタイム API のメンバーとして一覧表示されません。 ただし、任意の C++/WinRT プロジェクト内から呼び出すことができます。 API を拡張する C++/WinRT 関数Windows ランタイム参照してください。
operator==
2 つの KeyValuePair オブジェクトを比較し、インターフェイスを比較するのではなく、キーと値を比較します。
構造化バインディング (C++/WinRT)
IKeyValuePair<K、V> は構造化バインディングをサポートします。 たとえば、オブジェクトに適用された
auto&& [key, value] = kvp;
は と同等です。
auto key = kvp.Key();
auto value = kvp.Value();
構造化バインディングは、範囲ベース for
のループで特に便利であり、マップのキーと値のペアを反復処理できます。
winrt::Windows::Foundation::Collections::IMap<K, V> map;
for (auto&& [key, value] : map) { ... }
プロパティ
Key |
キーと値のペアのキーを取得します。 |
Value |
キーと値のペアの値を取得します。 |