Словарь <строка, MyObject> или Список <MyObject> с C# 3.5?

img содержит только имя изображения, но не полную информацию о пути.

Вместо этого создайте исходный путь при указании исходного изображения:

import os
source_folder = 'C:/Users/Admin-dsc/Documents/.../buses and motorcycles'
images = os.listdir(source_folder)
destination_folder = 'C:/Users/Admin-dsc/Documents/.../Buses'

for img in images: 
    filename = os.path.basename(img)
    copyfile(os.path.join(source_folder, img), os.path.join(destination_folder, filename))
8
задан Patrick Desjardins 6 November 2008 в 21:43
поделиться

4 ответа

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

список, которого все еще необходимо выполнить итерации через список для нахождения то, что Вы хотите. Словарь делает поиск.

13
ответ дан 5 December 2019 в 07:37
поделиться

Если у Вас просто будет Список, то выполнение выбора LINQ просканирует через каждый объект в списке, сравнивающем его с тем, который Вы ищете.

Словарь однако вычисляет хэш-код строки, которую Вы ищете (возвращенный методом GetHashCode). Это значение затем используется для поиска строки более эффективно. Для большего количества информации о том, как это работает, посмотрите Википедию.

Если у Вас будут больше, чем несколько строк, начальная буква (Список), то метод начнет становиться крайне медленным.

5
ответ дан 5 December 2019 в 07:37
поделиться

По моему скромному мнению, подход Словаря будет НАМНОГО быстрее, чем LINQ, поэтому если у Вас будет массив с большим количеством объектов, необходимо скорее использовать Словарь.

2
ответ дан 5 December 2019 в 07:37
поделиться

Словарь реализован как хеш-таблица. Таким образом это должно предоставить постоянный доступ времени для поисков. Список реализован как динамический массив, предоставив Вам линейный доступ времени.

На основе базовых структур данных Словарь должен все еще дать Вам лучшую производительность.

Документы MSDN о Словаре

http://msdn.microsoft.com/en-us/library/xfhwa508.aspx

и Список

http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx

2
ответ дан 5 December 2019 в 07:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: