如何显示可以容纳此范围的列表(在代码中),因为它显示内存不足异常?
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var l1 = Enumerable.Range(999900000, 1000000000).ToList();
l1.ForEach(f => Console.WriteLine(f));
}
}
}
答案 0 :(得分:7)
请勿转换为List<T>
,只需枚举:
var l1 = Enumerable.Range(999900000, 1000000000);
foreach(var f in l1)
Console.WriteLine(f);
答案 1 :(得分:2)
请勿在列表中收集所需的所有数据,尤其是如果您已知道其中的内容,但使用枚举器,以此方式减少应用的内存占用量。
例如:
IEnumerable<int> GetNextInt()
{
for(int i=999900000; i< 1000000000; i++)
{
yield return i;
}
}
并在循环之后使用此
foreach(var integer in GetNextInt())
{
//do something..
}