次の方法で共有


IKeyValuePair<K,V> インターフェイス

定義

キーと値のペアを表します。 これは通常、別のジェネリック インターフェイスの制約を満たすために 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

キーと値のペアの値を取得します。

適用対象

こちらもご覧ください