.net - .NET 中具有超过 2^31 个键的大数组的选项

标签 .net

对于支持超过 2^31 个键的数组,是否有任何内置选项。这将使 key 类型为 System.Int64 而不是 System.Int。虽然 2^31 是一个相当大的数量,但越来越多的应用程序需要更多的 key 。例如,人类基因组中有超过 30 亿个碱基对。有什么简单的选择吗?

最佳答案

这在 .NET 中是不可能的,因为每个对象的最大限制为 2GB。即使在 64 位中,您仍然有此限制。

如果您真的想尝试一次将所有这些数据保存在内存中,您可以将数据分成 block 。您甚至可以编写一个包装类来透明地将索引从 Int64 映射到正确分区上的 Int32 索引。

你可以阅读 this article关于 BigArray。

关于.net - .NET 中具有超过 2^31 个键的大数组的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2254990/

相关文章:

c# - 如何重新编号 ObservableCollection<KeyValuePair<int, string>

c# - System.Web.HttpRequest.FillInFormCollection() 和 System.Web.HttpRequest.GetEntireRawContent() 非常慢

c# - 在自定义控件中隐藏不需要的属性

c# - 从 Windows 移植到 Mac

C#:HashSet的volatile读写

c# - 为什么我无法再反序列化这些数据?

.net - 如何以跨平台的方式在新进程中启动 .NET exe?

.net - WPF 绑定(bind)中的默认值

.net - 如何确定 SQL Server 存储过程参数是否有默认值?

c# - 哪个更快 List<string>.foreach 或 listString.GetEnumerator()