我目前正在编写一段代码,它执行一些搜索,返回 IDisposable 对象(DirectoryEntry 特定于 ADAM 实例),最终得到的代码类似于
using(var entry = (from result in results
let entry = result.GetDirectoryEntry()
where entry != null
select entry).Last())
{
//blah blah
}
但是谁负责处理上述查询未返回的对象?或者更重要的是,上面的代码实际上缺少对除最后一个条目之外的所有其他条目的 Dispose() 调用?
最佳答案
如果是 Linq to Objects,那么你要负责。是的,对象不会被处理。您应该在 Last
之前获取查询结果和 Dispose
他们手动。
关于.net - LINQ 查询和 IDisposable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3574570/