.net - LINQ 查询和 IDisposable

标签 .net linq idisposable

我目前正在编写一段代码,它执行一些搜索,返回 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/

相关文章:

c# - 删除文本末尾的点

c# - 在 C# 中将 COM 对象作为参数传递

c# - 通过泛型方法实例化接口(interface)基类

c# - 为类或接口(interface)声明 IDisposable?

c# - 在 main() 中为 SerialPort 添加事件处理程序

asp.net - 列出 Asp.Net 中 GridView 事件的顺序

c# - 在 linq 的列表中列出 - 它是什么?

c# - 在 C# 中从 Entity Framework 调用存储过程

c# - LINQ 中的全词搜索

c# - 为什么要用 using 语句初始化对话框?