Linq允许您在查询表达式中创建新对象。当您有封装列表生成的类时,这非常有用。我想知道如何处理需要释放的创建的对象?
示例:
class Generator
{
public IEnumerable<int> Gen(int size)
{
return Enumerable.Range(0, size);
}
}
class bar
{
public void doit()
{
var foo =
from r in Enumerable.Range(1, 3)
from g in new Generator().Gen(r)
select g;
}
}
这将创建3个生成器对象,它们在某个时候将被垃圾回收。如果Generator是IDisposable的,我如何获得Dispose()调用?