Перебор словаря в C#

var dict = new Dictionary();
for (int i = 0; i < 200000; i++)
    dict[i] = "test " + i;

Я повторил этот словарь, используя приведенный ниже код:

foreach (var pair in dict)
    Console.WriteLine(pair.Value);

Затем я повторил это, используя:

foreach (var key in dict.Keys)
    Console.WriteLine(dict[key]);

А вторая итерация заняла ~на 3 секунды меньше. Я могу получить как ключи, так и значения с помощью обоих методов. Мне интересно, есть ли у второго подхода недостаток. Поскольку самый рейтинговый вопрос , который я могу найти по этому поводу, не включает этот способ перебора словаря, я хотел знать, почему его никто не использует и как он работает быстрее.

13
задан Community 23 May 2017 в 11:46
поделиться