Я работаю с унаследованным кодом, и я вижу словарь, ключ представляет собой список объектов ...Как работает словарь, чей ключ является List?
var myCrazyDictionary = new Dictionary<List<MyKeyObject>, List<MyValueObject>>();
Как такой словарь вести? Вы знаете, из-за ссылочных типов ...
Работает ли она так магически?
// ????
myCrazyDictionary.Add(new List<MyKeyObject> { new MyKeyObject { Key1 = "1", Key2 = 2 } }, new List<MyValueObject> { new MyValueObject { Value = "!" } });
// ???????????
var result = myCrazyDictionary[new List<MyKeyObject> { new MyKeyObject { Key1 = "1", Key2 = 2 } }];
// Will this hold the value: "!" or crash or something else?
var byWhatBlackMagic = result[0].Value;
Загрузите [LinqPad] (https://www.linqpad.net), разместите там свой код и протестируйте его самостоятельно. Или Visual Studio 2015 имеет интегрированный REPL. –
Вероятно, вы должны написать свой собственный класс для хранения значений ключа. Убедитесь, что ключ не изменяется (в идеале, делая его неизменным). –