Основываясь на этом вопросе, есть ли простое решение для наличия многокнопочного словаря, где каждый ключ может использоваться для идентификации значения?
т.
MultikeyDictionary<TKey1, TKey2, TValue> foo;
foo.Add(key1, key2, value);
myValue = foo[key1];
// value == myValue
foo.Remove(key2);
myValue = foo[key1]; // invalid, Exception or null returned