我有一个来自我的数据存储的用户对象列表。
现在,一旦它已经在内存中,通过他的ID获取用户的唯一方法是使用Single扩展方法。这实际上是性能下降。
我知道我可以使用字典而不是列表,但这可能是多余的。我必须存储主键2次。那么还有另一种方法可以做我想要的吗?
BTW我正在制作一个可以做这样的事情的自定义课程,但我希望有一些开箱即用的东西。
答案 0 :(得分:2)
假设主键是引用类型,您只需将引用存储到主键两次。
您是否尝试过使用Dictionary<,>
并发现它效果不佳?这当然是最自然的解决方案。 KeyedCollection<,>
(由马克建议)肯定也会起作用,但要求你从类中派生出来 - 我不想保证它实际上会节省任何记忆。 (您需要知道实现细节 - 例如,它可以很容易地在内部使用Dictionary。)
答案 1 :(得分:1)
您可以将内存中的用户保存在KeyedCollection。