如何使用Instance作为键搜索Dictionary

时间:2013-04-03 05:47:15

标签: c# dictionary

这是我的字典声明:

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

MYType<T>的属性为MyTypeIdMyTypeParentId

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

  2. 或者我应该将MyTypeParentId声明为int而不是将我的密钥设为MYType<T>

  3. 我希望密钥成为MyType<IMyType>的一种类型,因为它在该实例中具有其他有用的属性。

    因此,将该实例作为键提供,我认为可以让我键出MYType<T>中我可以匹配的几个不同的属性...

2 个答案:

答案 0 :(得分:1)

字典的优点是通过密钥(任何类型)的哈希代码快速搜索,而不是密钥的属性(或属性)。当然,您可以通过Keys集合搜索密钥类型的属性,但它不会是快速搜索。

如果您想按MyTypeParentId搜索,请使用int键创建一个词典,并使用MyTypeParentId作为键。

答案 1 :(得分:0)

如果您要查找该类型的实例,请仅使用您的类型作为键。如果需要查找与int ID对应的值,请使用int键构建字典。

也许维护多个词典会对您有所帮助(例如,一个键入ID类型,一个键入专利类型ID)。