3

我希望能够创建一个固定大小的哈希图,比如 100 个桶,如果我需要存储超过 100 个项目,那么碰撞和覆盖就必须发生。哈希表类有一个 IsFixedSize 属性,但它是只读的。

我是否完全错误地考虑了这一点,或者有解决方案吗?

4

1 回答 1

4

.NET 框架中的集合不允许进行大量微调。尽管您可能会找到一种足够有效的方法来满足您的需求。在优化之前尝试一些可行的方法。

如果您不自己动手,那么您可能会找到具有更细粒度控制的第 3 方替代方案。例如,请参阅The C5 Generic Collection Library for C# and CLI作为一个可能的开始。在他们的文档页面上查看各种 Hash* 类。

如果您决定自己动手,那么您将需要为集合和/或列表、枚举等实现一些标准接口foreach,以便它们与 C#和语言以及 .NET 功能一起按预期工作。

如果你有一个有效的 C++ 实现并且有在 C#/.NET 中使用它的方法,你也可以采用一个高效的 C++ 实现。这可能需要一些麻烦,但是关于如何完成这种事情有一些答案。

于 2010-01-26T02:39:44.437 回答