C# 在内存C中存储超过1亿条记录#

C# 在内存C中存储超过1亿条记录#,c#,datatable,C#,Datatable,我正在使用C#DataTable存储大约1亿条记录。但在存储了1600万之后,它抛出了一个异常“内存不足” 所以我们可以在c#datatable中存储1亿条记录,或者我们有其他替代方法吗 在存储数据之后,我想对该数据执行一些LINQ查询 请提供解决方案数据表可以存储的最大行数为16777216 发现 另一种方法是使用数据集。在每个1600万条记录之后创建一个数据表,并将其添加到数据集中。内存中有1亿条记录有什么意义?这对我来说没什么意义。你从哪里获得数据?为什么不能从数据源本身(DB、文件或其他

我正在使用C#DataTable存储大约1亿条记录。但在存储了1600万之后,它抛出了一个异常“内存不足”

所以我们可以在c#datatable中存储1亿条记录,或者我们有其他替代方法吗

在存储数据之后,我想对该数据执行一些LINQ查询


请提供解决方案

数据表可以存储的最大行数为16777216

发现


另一种方法是使用数据集。在每个1600万条记录之后创建一个数据表,并将其添加到数据集中。

内存中有1亿条记录有什么意义?这对我来说没什么意义。你从哪里获得数据?为什么不能从数据源本身(DB、文件或其他)执行Linq查询(过滤)?出于兴趣,每个记录有多大,以及您有多少内存?即使没有DataTable限制,如果您有1亿条记录,并且每条记录只有一个包含20个字符的字符串,那么
DataRow
对象等的开销仍然是每行至少100字节,因此是10GB。为什么需要将整个数据库存储在内存中?这里没有内存问题。我正在为具有64 GB Ram的机器创建此解决方案。我们没有任何数据库可以让我直接执行LINQ操作。datatable中的行将在运行时相乘。。它可能会跨越1亿。是的,我知道。。。但是我们有没有其他选择呢???使用数据集,在每1600万条记录之后创建一个新的数据表,这将不能满足我的需要。。。因为我需要一个列表或一个集合中的所有记录。