foreach循环中的内存使用情况C#

Jed*_*Jed 2 c# memory foreach loops c#-4.0

我有一个foreach循环

var axsEntities = GetAxsEntitiesForInvoicing(adapter)
                  .GroupBy(x => x.AccountUsingAccountIdToAccountId);

foreach(var gbAccount in axsEntities)
{
    int i = gbAccount.count(); 
}
Run Code Online (Sandbox Code Playgroud)

现在,当我在没有循环的情况下运行它时运行正常,但是使用循环它会占用太多内存,在这种情况下为3千兆字节.这可能是什么原因?

谢谢

Hen*_*man 5

没有循环,没有任何事情真的发生.

axsEntities只是一个具有延迟执行的IEnumerable.
创建它总是很便宜.只有在迭代它时foreach,才能获取和计算事物.

所以你可能拥有很多元素,或者.count()使用大量内存.