C# 创建固定大小的哈希表

发布于 2024-08-18 18:54:40 字数 131 浏览 6 评论 0原文

我希望能够创建一个包含 100 个存储桶的固定大小的哈希图,如果我需要存储超过 100 个项目,则必然会发生冲突和覆盖。哈希表类有一个 IsFixedSize 属性,但它是只读的。

我是否完全错误地思考了这个问题,或者有解决方案吗?

I want to be able to create a fixed size hashmap of say 100 buckets, and if I need to store over 100 items then collisions and overwriting will just have to happen. The hashtable class has a IsFixedSize property however it is readonly.

Am I thinking about this completely wrongly, or is there a solution to this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

相思故 2024-08-25 18:54:40

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

如果您不自己开发,那么您可能会找到具有更细粒度控制的第三方替代品。例如,请参阅C5 通用集合库
对于 C# 和 CLI
作为可能的开始。查看其文档页面上的各种 Hash* 类

如果您决定自己推出,那么您需要实施 一些用于集合和/或列表、枚举等的标准接口,因此它们可以按预期与 C# foreach 以及语言和 .NET 功能一起工作。

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

Collections in the .NET framework don't allow for a lot of fine-tuning. Although you might find one efficient enough for your needs. Try some viable ones out before optimizing.

If you don't roll your own then you might find a 3rd party alternative that has more fine-grained controls. For example, see The C5 Generic Collection Library
for C# and CLI
as a possible start. Check into the various Hash* classes on their documentation page.

If you decide to roll your own then you'll want to implement some of the standard interfaces for collections and/or lists, enumerations, etc so they work as expected with C# foreach and language and .NET features.

You might also take an efficient C++ implementation if you have one and there are ways of using it in C#/.NET. It might take a bit of finagling but there are answers on SO about how to accomplish this kind of thing.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文