我有以下代码要将数据表数据保存到列表中我在数据表中有100万条记录但是在524288行之后我收到此错误 mscorlib.dll中出现“System.OutOfMemoryException”类型的异常,但未在用户代码中处理 我该如何解决?
谢谢
public struct Dg {
public int Id;
public int b;
}
public List<Dg> DgShow() {
List<Dg> list_m = new List<Dg>();
if (dt.Rows.Count > 0) {
for (i = 0; i <= dt.Rows.Count - 1; i++) {
Dg a = new Dg();
a.Id = Convert.ToInt32(dt.Rows[i]["Id"].ToString());
a.b = Convert.ToInt32(dt.Rows[i]["Idb"].ToString());
list_m.Add(a);
}
}
return list_m;
}
答案 0 :(得分:3)
如果您实际上将Dg
的实例添加到列表中,则可以添加近7000万。要添加的类型DgShowTA_Manage_Darkhast_column
必须大得多,才能让您失败只有50万。
在这种情况下,我认为最简单的方法是将DgShowTA_Manage_Darkhast_column
类型从struct
更改为class
,如果可能的话。它显然是一个很大的类型,所以你并没有真正获得太多的价值类型,而且它显然阻碍了你维护一个大型集合的能力。
您可以采取其他方法:
如果您可以提供更好的代码示例和更多上下文,也许可以提供更好的答案。