这是我的字典声明:
public IDictionary<MYType<IMyType>, IList<MYType<IMyType>>> SomeList {
get;
set;
}
MYType<T>
的属性为MyTypeId
和MyTypeParentId
。
如果我想在MyTypeParentId
上搜索密钥,这可能吗?
或者我应该将MyTypeParentId
声明为int
而不是将我的密钥设为MYType<T>
?
我希望密钥成为MyType<IMyType>
的一种类型,因为它在该实例中具有其他有用的属性。
因此,将该实例作为键提供,我认为可以让我键出MYType<T>
中我可以匹配的几个不同的属性...
答案 0 :(得分:1)
字典的优点是通过密钥(任何类型)的哈希代码快速搜索,而不是密钥的属性(或属性)。当然,您可以通过Keys
集合搜索密钥类型的属性,但它不会是快速搜索。
如果您想按MyTypeParentId
搜索,请使用int键创建一个词典,并使用MyTypeParentId
作为键。
答案 1 :(得分:0)
如果您要查找该类型的实例,请仅使用您的类型作为键。如果需要查找与int ID对应的值,请使用int键构建字典。
也许维护多个词典会对您有所帮助(例如,一个键入ID类型,一个键入专利类型ID)。