【发布时间】:2011-08-29 00:57:45
【问题描述】:
我有一个 Session 的概念,它存储各种状态的对象。
有时我需要扫描 Session 以查找与特定查询匹配的对象,但我经常这样做,性能测试表明它正在成为某些领域的瓶颈。
因此我想介绍一下 Session 上索引的概念。
类似...
public IDictionary<K, V> GetIndex<K, V>(Func<V, K> keySelector)
但是我不确定如何测试这样的 Func 的“相等性”。显然,我希望索引仅在第一次调用 GetIndex 时构建,后续调用不再构建它。
我应该如何在内部映射这些以进行索引存在查找?
IDictionary<???, IDictionary<K, V>> indexes = ...
基本上我应该如何存储???。也许我不能使用 Func 来做到这一点,但也许还有其他方法。
【问题讨论】:
-
听起来你可能会从记忆中受益。 bartdesmet.net/blogs/bart/archive/2008/10/21/…
-
对象可以改变,还是索引一旦建立就真的无限期好?
标签: c# .net dictionary indexing