Поделиться через


IMap<K,V> Интерфейс

Определение

Представляет ассоциативную коллекцию, также называемую картой или словарем.

.ЧИСТАЯ Этот интерфейс отображается в коде .NET как System.Collections.Generic.IDictionary<TKey,TValue> из-за проекции языка .NET. В любом случае, когда тип среда выполнения Windows реализует IMap<K,V>, код .NET может использовать API IDictionary<TKey,TValue>.

public interface class IMap : IIterable<IKeyValuePair<K, V> ^>
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.FoundationContract, 65536)]
/// [Windows.Foundation.Metadata.Guid(1009329662, 34073, 17857, 170, 121, 25, 123, 103, 24, 193, 193)]
template <typename K, typename V>
struct IMap : IIterable<IKeyValuePair<K, V>>
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.FoundationContract), 65536)]
[Windows.Foundation.Metadata.Guid(1009329662, 34073, 17857, 170, 121, 25, 123, 103, 24, 193, 193)]
public interface IDictionary<K,V> : IEnumerable<KeyValuePair<K,V>>
Public Interface IDictionary(Of K, V)
Implements IEnumerable(Of KeyValuePair(Of K, V))

Параметры типа

K
V
Атрибуты
Реализации

Требования к Windows

Семейство устройств
Windows 10 (появилось в 10.0.10240.0)
API contract
Windows.Foundation.FoundationContract (появилось в v1.0)

Комментарии

При программировании с помощью .NET этот интерфейс скрыт, и разработчики должны использовать интерфейс System.Collections.Generic.IDictionary<TKey,TValue> , если они хотят реализовать тип карты или словаря. В любом случае, когда тип среда выполнения Windows реализует IMap<K,V>, код .NET может использовать API IDictionary<TKey,TValue>. Сюда входят все существующие API среда выполнения Windows, а также такие сценарии, как использование API среда выполнения Windows компонентов, изначально реализованных в расширениях компонентов Visual C++ (C++/CX) из приложения C# или Visual Basic.

Интерфейс IMap<K,V> представляет коллекцию пар "ключ-значение", в которых к значению можно получить доступ по связанному ключу. Свойства и методы IMap<K,V> поддерживают функции словарного типа, такие как получение размера коллекции, а также добавление и удаление элементов в указанных расположениях коллекции. Кроме того, метод GetView предоставляет snapshot карты, наблюдаемое состояние которой не изменяется. Этот snapshot полезен, если требуется представление коллекции для ссылки на последующие операции с использованием IMap<K,V>.

Функции расширения C++/WinRT

Примечание

Функции расширения существуют в типах проекций C++/WinRT для определенных API среда выполнения Windows. Например, winrt::Windows::Foundation::IAsyncAction — это тип проекции C++/WinRT для IAsyncAction. Функции расширения не являются частью поверхности двоичного интерфейса приложения (ABI) фактических типов среда выполнения Windows, поэтому они не перечислены как члены API среда выполнения Windows. Но их можно вызывать из любого проекта C++/WinRT. См. статью Функции C++/WinRT, расширяющие среда выполнения Windows API.

auto begin() const;

Возвращает итератор первой паре "ключ-значение" коллекции для использования в алгоритмах C++, таких как циклы на основе for диапазона.

auto end() const;

Возвращает итератор после последней пары "ключ-значение" коллекции для использования в алгоритмах C++, таких как циклы на основе for диапазона.

auto TryLookup(param_type<K> const& key) const;

Пытается найти элемент на карте с помощью ключа. Для ссылочных типов возвращает значение , если найдено или nullptr если не найдено. Для типов значений возвращает std::optional<V>, который содержит значение , если он найден, или не имеет значения, если не найден.

bool TryRemove(param_type<K> const& key) const;

Удаляет элемент карты с ключом, если он есть. Возвращает значение true , если элемент был найден и удален. Возвращает значение false , если элемент не найден.

Наследование интерфейса

IMap<K,V> наследует IIterable, используя ограничение IKeyValuePair , которое использует одни и те же типы ключей и значений. Типы, реализующие IMap<K,V> , также реализуют члены интерфейса IIterable, при этом ограничение типа IKeyValuePair использует один и тот же ключ и значение. Аналогичным образом, если вы используете .NET, существует поддержка IEnumerabe<T> с типом ограничения в качестве KeyValuePair , который использует те же типы ключей и значений, что и реализация IDictionary<TKey,TValue> .

Свойства

Size

Возвращает количество элементов на карте.

Методы

Clear()

Удаляет все элементы с карты.

GetView()

Возвращает неизменяемое представление карты.

HasKey(K)

Определяет, содержит ли карта указанный ключ.

Insert(K, V)

Вставка или замена элемента на карте.

Lookup(K)

Возвращает элемент с указанным ключом на карте.

Remove(K)

Удаляет элемент с карты.

Применяется к

См. также раздел