Я недавно видел новую тенденцию в моей фирме, где мы изменяем iEnumerable в словарь по простому преобразованию Linq следующим образом:
enumerable.ToDictionary(x=>x);
мы в основном в конечном итоге делаем это, когда операция В коллекции есть содержит / доступ и, очевидно, что словарь имеет лучшую производительность в таких случаях.
Но я понимаю, что преобразование перечисленного словаря имеет свои собственные затраты, и мне интересно, в какой момент он начинает разбиваться - даже (если он это делает), то есть производительность IENumerable
Содержит / доступ равен для того, чтобы подразделение
+ Access / содержит.
ОК, я мог бы добавить, что нет баз данных. Доступ к перечислимому может быть создан из запроса базы данных и вот и перечислима может быть отредактирована после этого ..
Также было бы интересно узнать, как хранить тип данных Ключ влияет на производительность?
поиск может быть в 2-5 раз вообще, но иногда может быть один. Но я видел такие вещи, как Для перечисленного перечисления:
var element=Enumerable.SingleorDefault(x=>x.Id);
//do something if element is null or return
для словаря:
if(dictionary.ContainsKey(x))
//do something if false else return
Это уже некоторое время прогуливается.