Вы не можете использовать этот словарь для поиска с такой же эффективностью. Но вы можете легко запустить запрос LINQ для свойства вашего словаря Values
, которое является просто набором значений Movie.
var moviesIWant = From m in movieLookup.Values
Where m.Name == "Star Wars"
Select m
Некоторые мысли:
- Когда вы найдете свой ответ, вы не будете иметь направляющие, если только они не были также свойством фильма.
- Для небольшого словаря это просто отлично. Для больших и повторяющихся поисков вам следует подумать о создании других словарей на основе других значений, по которым вы хотите искать. Только таким образом вы достигнете скорости поиска guid, сопоставимой с вашим оригинальным словарем.
Вы можете создать еще один словарь по имени. Как только вы это сделаете, вы можете искать в этом словаре по его ключу, и он будет иметь ту же суперэффективность, что и ваш оригинальный словарь, даже для очень большого словаря.
var moviesByName = movieLookup.Values.ToDictionary(m => m.Name, m => m)