Разница между ReadOnlyDictionary и Lookup в.Net
Я все еще много узнаю об неизменяемости и о том, когда использовать такие объекты, и начал включать в мой код больше поисков, так как я знал, что они неизменны и, следовательно, часто лучше использовать, чем словари, которые могут быть изменены клиентами.
При этом я знаю, что была проделана большая работа по внедрению ReadOnlyDictionaries в.Net, и я немного запутался, когда каждый из них был бы более полезным, чем другой, и что конкретно отличает их. Я посмотрел онлайн, но не могу найти ни одной статьи, объясняющей эту разницу.
Например, я видел этот вопрос и подумал, что Lookup будет более идеальным решением, но я не совсем понимаю, почему это не так.
Может кто-нибудь указать мне в правильном направлении / объяснить, где один будет использоваться над другим.
Спасибо!!
1 ответ
Поиск - это простой способ группировки коллекций, где вы можете иметь одно или несколько значений для данного ключа. Словарь дает вам одно значение для данного ключа и только одно значение. В зависимости от вашего сценария может иметь смысл иметь словарь, в котором вы возвращаете одно значение, или вам может потребоваться поиск, который даст вам набор значений.
Без "Уточнения", если вы хотите получить набор значений для определенного ключа, вы застряли бы в чем-то ужасном
Dictionary<int, IEnumerable<String>>
ЮК. См. https://msdn.microsoft.com/en-us/library/bb460184%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396 для получения дополнительной информации о поиске.