Я программист-любитель, и это кажется простой проблемой для исправления, но я просто не могу понять, как это сделать. Ниже приведен код C#, который не действует, как я хочу. Я ожидаю, что для этого вернется 3, но вместо этого выбрасывает KeyNotFoundException
. Списки одинаковы, так что не следует ли возвращать 3? Спасибо за любую помощь.C# Словарь, дающий KeyNotFoundException, не знаю почему
Dictionary<object, double> dict = new Dictionary<object, double>();
dict.Add(new List<object>() { "a", "b" }, 3);
double output = dict[new List<object>() { "a", "b" }];
Использование объекта List <> в качестве ключа из словаря не является хорошей идеей, она идет против большинства общих случаев использования. – EkoostikMartin
Что было бы лучше заменить? Если у меня есть список объектов, но я не знаю, сколько объектов есть или какой тип они есть, как их сопоставить с числами? – vlts
хорошо @ Daniel Hilgarth предоставил вам достойную альтернативу «Tuple», но чтобы дать более конкретный ответ, вам нужно будет привести примеры того типа объектов, который вам нужно поместить в словарь. – EkoostikMartin