2016-06-22 2 views
-4

Я присутствовал на интервью сегодня, и собеседник спросил, что такое словарь, и когда мы его используем? 1-я часть была довольно простой, но во второй части я не смог ответить, я знаю, что это ключевая пара значений, но я всегда использовал список объектов для достижения своей цели.Когда использовать словарь в C#?

Я много искал, прочитав статью this, and this, но я обнаружил, что все отвечают на вопрос «Как не на то, когда часть, так что вы могли бы помочь мне с некоторыми сценариями, где я должен использовать словарь?

Спасибо.

+0

Когда вам нужен * ассоциативный массив * – haim770

+0

Вы действительно его подделали - когда вам нужны пары значений ключа. Если вам это не нужно, список объектов будет прекрасным. – Ian

+0

Существует целый ряд * примеров * того, где/когда использовать 'Словарь ' на этом знаменитом сайте здесь: http://google.com - просто введите свой запрос и отпустите! –

ответ

0

Когда ваш индекс списка должен быть значимым и уникальным, вы можете использовать словарь для улучшения операций loookup.

1

Это обычно из-за сложности поиска. Поиск в списке - O (n), но поиск в словаре - O (1).

Однако все зависит от других вопросов - это список, отсортированный по ключу? Если да, то поиск - O (nlogn), как реализуется словарь? В худшем случае вы можете достичь O (n) даже со словарем.

Так что, в общем, вы используете словарь, когда вам нужно искать в какой-то коллекции какой-то ключ.

0

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

Многие люди ответят, говоря о сложности, скорости доступа и вставках и тому подобных вещах. Они не ошибаются, словари довольно чертовски быстры, хорошо оптимизированы и предлагают производительность, в которой вы нуждаетесь в большинстве случаев. В большинстве случаев это не имеет особого значения, также было бы достаточно выполнения объединенного списка пар ключ-значение. В основном вы будете использовать словари, потому что они удобны.

Смежные вопросы