IKeyValuePair<K,V> 인터페이스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
키-값 쌍을 나타냅니다. 일반적으로 다른 제네릭 인터페이스의 제약 조건을 충족하기 위해 두 형식 매개 변수를 하나로 캡슐화해야 하는 경우 제약 조건 형식으로 사용됩니다.
.Net 이 인터페이스는 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>의 실제 구현은 반복 가능하며 FirstCurrent를 반복하거나 호출/하면 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 프로젝트 내에서 호출할 수 있습니다. Windows 런타임 API를 확장하는 C++/WinRT 함수를 참조하세요.
operator==
두 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 |
키-값 쌍의 값을 가져옵니다. |