我希望能够创建一个固定大小的哈希表,例如100个桶,如果需要存储超过100个项目,则必须发生冲突和覆盖。Hashtable类具有IsFixedSize属性,但它是只读的。我是否完全错误地考虑了这个问题,或者有解决方案?
.NET框架中的集合不允许进行大量的微调。虽然您可能会发现其中一个足够高效以满足您的需求。在优化之前,请尝试一些可行的选择。如果您不想自己创建,则可以找到第三方替代方案,具有更精细的控件。例如,请参见适用于C#和CLI的C5通用集合库作为可能的起点。请查看其文档页面上的各种Hash*类。如果您决定自己创建,则需要实现一些标准接口以使集合和/或列表、枚举等按预期与C# foreach和语言和.NET功能一起工作。如果您有一个高效的C++实现,并且有办法在C#/.NET中使用它,那么您也可以采用这种方法。这可能需要一些技巧,但是SO上有关于如何完成此类事情的答案。