Класс Dictionary
Класс Dictionary<TKey, TValue> из
System.Collections.Generic хранит уникальные
ключи и связанные с ними значения. Поиск,
добавление и удаление по ключу выполняются
за амортизированное константное время. Ключи
сравниваются через IEqualityComparer<TKey>
или равенство по умолчанию для типа ключа.
Синтаксис
Dictionary<TKey, TValue> map = new Dictionary<TKey, TValue>();
Dictionary<TKey, TValue> map = new Dictionary<TKey, TValue>(capacity);
Пример
Давайте создадим таблицу и добавим пары через Add:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Dictionary<int, string> map = new Dictionary<int, string>();
map.Add(1, "a");
map.Add(2, "b");
map.Add(3, "c");
Console.WriteLine(map[2]);
}
}
Результат выполнения кода:
"b"
Пример
Давайте заполним таблицу инициализатором коллекции:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Dictionary<int, string> map = new Dictionary<int, string>
{
{1, "a"},
{2, "b"},
{3, "c"},
{4, "d"},
{5, "e"}
};
Console.WriteLine(map.Count);
}
}
Результат выполнения кода:
5
Пример
Давайте прочитаем значение через индексатор по ключу:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Dictionary<string, int> map = new Dictionary<string, int>
{
{"a", 1},
{"b", 2},
{"c", 3}
};
Console.WriteLine(map["b"]);
}
}
Результат выполнения кода:
2
Пример
Давайте выведем ключи в отсортированном виде:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
Dictionary<int, string> map = new Dictionary<int, string>
{
{3, "c"},
{1, "a"},
{2, "b"}
};
int[] keys = map.Keys.OrderBy(k => k).ToArray();
Console.WriteLine(string.Join(" ", keys));
}
}
Результат выполнения кода:
"1 2 3"
Смотрите также
-
метод
TryGetValue,
который безопасно читает значение -
свойство
Count,
которое возвращает число пар -
класс
SortedDictionary,
который сортирует ключи при обходе -
интерфейс
IDictionary,
который задаёт контракт таблицы