【发布时间】:2014-03-10 13:17:38
【问题描述】:
我有一个相对较小的字典(最多几百个条目),它正在接收许多调用(每秒数百个,可能是数千个),其中许多需要修改条目。
在性能方面,对于经常更新的小列表,通常推荐使用哪种解决方案?
- 拆箱结构体
- 为每个需要修改的参数定义结构方法
- 使用可以直接修改的类,因为它们的引用方式与结构不同
【问题讨论】:
-
您的实验向您展示了什么,这些是自然值类型吗?完全不清楚为什么你需要在这里装箱...
List<T>不装箱值。 -
有什么阻止你自己测试这个吗?
-
@JonSkeet 我可能误解了这个概念。我的意思是将列表值存储在临时结构中,对其进行修改并将其放回列表中。
-
@Chris 如果您实际上使用的是字典或其他需要散列项目的集合类型,则需要小心您更改的内容。如果您对构成散列一部分的值进行变异,则可能会丢失字典中的对象或返回错误的对象。因此,无论如何,您的用例是从字典中删除该项目,对其进行修改,然后将其放回 - 除非您知道您正在更改的内容不会影响哈希。
-
@Chris:嗯,绝对对我来说听起来不像一个值类型。
标签: c# dictionary lookup lookup-tables