Перейти к основному содержимому

Словари

Как создать экземпляр Dictionary<TKey, TValue> с предустановленными значениями?

Классический вариант
var dic = new Dictionary<string, string> 
{
{ "key 1", "value 1" },
{ "key 2", "value 2" },
{ "key 3", "value 3" },
};
C# 6.0 и выше
var dic = new Dictionary<string, string> 
{
["key 1"] = "value 1",
["key 2"] = "value 2",
["key 3"] = "value 3",
};

Как сделать ключи не чувствительные к регистру?

var dic = new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase);

Как объединить два словаря?

var dictionaryA = new Dictionary<string, string>
{
{ "key_1", "value_1" },
{ "key_2", "value_2" },
};

var dictionaryB = new Dictionary<string, string>
{
{ "key_3", "value_3" },
{ "key_4", "value_4" },
};

var merged = dictionaryA.Concat(dictionaryB).ToDictionary(x => x.Key, x => x.Value);

Console.WriteLine(merged["key_1"]); // value_1
Console.WriteLine(merged["key_4"]); // value_4

Что лучше Dictionary или Hashtable?

В подавляющем большинстве случаев рекомендуется использовать Dictionary<TKey, TValue>.

Dictionary<TKey, TValue> проще, надежней и работает быстрее.