1

这是我的字典声明:

public IDictionary<MYType<IMyType>, IList<MYType<IMyType>>> SomeList {
    get;
    set;
}

MYType<T>有性质MyTypeIdMyTypeParentId

  1. 如果我想在 上搜索密钥MyTypeParentId,这可能吗?

  2. 还是我应该只声明MyTypeParentIdint而不是使我的密钥为 a MYType<T>

我有点希望键是一种类型,MyType<IMyType>因为它在该实例中具有其他有用的属性。

因此,将该实例用作键,我认为可以让我关闭其中存在的几个不同属性,MYType<T>我可以匹配...

4

2 回答 2

1

Dictionary 的优点是通过键(任何类型)的哈希码进行快速搜索,而不是键的一个(或多个)属性。当然,您可以通过Keys集合搜索 Key 类型的属性,但这不会是一个快速搜索。

如果要搜索MyTypeParentId,请使用 int 键创建字典,并MyTypeParentId用作键。

于 2013-04-03T05:56:39.087 回答
0

Only use your type as the key if you will be looking up instances of that type. If you need to look up values corresponding to an int ID, build your dictionary with int keys.

Perhaps maintaining multiple dictionaries will help you (e.g. one keyed on type ID and one keyed on patent type ID).

于 2013-04-03T06:07:26.767 回答