Dicionários multi-chave (de outro tipo) em c #?

Construindo emessa questão, existe uma solução simples para ter um dicionário multi-chave ondequer chave individualmente pode ser usado para identificar o valor?

ie.

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

questionAnswers(9)

yourAnswerToTheQuestion