我正在尝试创建一个包含329734个元素的Dictionary<int,int>。当我试图创建内存中的字典,将唯一的整数列映射到整数Id时,代码
var dict = ctx.MyEntity.ToDictionary(e => e.SomethingUnique, e => e.Id);抛出
OutOfMemoryException
应该有足够的内存来创建这两个整数的字典。这里发生了什么,我怎样才能避免?
发布于 2015-05-08 01:48:14
将返回整个对象,即使只使用两个字段。由于对象中有许多属性,运行时将耗尽可用内存。
这可以避免使用投影。
var dict = ctx.MyEntity
.Select(e => new { SomethingUnique = e.SomethingUnique,
Id = e.Id })
.ToDictionary(e => e.SomethingUnique, e => e.Id);即使你没有耗尽内存,使用投影也更有效。
https://stackoverflow.com/questions/30114502
复制相似问题