我需要一个带有复合键的字典 . 到目前为止,我一直在使用元组:

Dictionary<(string key1, string key2, Datetime key3), TValue> groups = ...

但是现在我需要将键指定为属性的运行时列表 . 就像是

var key = new CompositeKey();
key.Add(key1)
key.Add(key2)
key.Add(key3);

Dictionary<CompositeKey, TValue> groups = ...

是否有一个类可以作为CompositeKey服务的现有类,它以有效的方式覆盖GetHashCode和Equals?字典可以有数百万个项目 .