基于这个问题,是否有一个简单的解决方案,可以使用多键字典,其中任何一个键都可以用来识别值?
即.
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
我需要一张有两个键的地图,例如
Map2<String /*ssn*/, String /*empId*/, Employee> _employees;
这样我就可以
_employees.put(e.ssn(), e.empId(), e)
然后
_employees.get1(someSsn);
_employees.get2(someImpId);
甚至
_employees.remove1(someImpId);
我不知道为什么我要停在两个,为什么不多,可能是因为我现在需要的情况是这样:-)但是类型需要处理固定数量的键是类型安全的 - 类型参数不能是vararg :-)
感谢任何指针,或建议为什么这是一个坏主意.