c# - 我应该有返回 Disposable 实例列表的方法吗?

标签 c# .net collections idisposable

我有一个类,它的实例需要被释放。我还有几个产生这些实例的类,可以是单独的,也可以是它们的列表。

我应该返回 IList<MyClass>从我的方法或者我应该创建一个类 MyClassCollection哪个也是一次性的并返回这个?

编辑:

我问的主要原因是我已经做了很多这样的事情:

IList<MyObject> list = GetList();
foreach(MyObject obj in list)
{
     //do something
     obj.Dispose();
} 

看来我最好这样做:

using (IList<MyObject> list = GetList())
{
     foreach(MyObject obj in list)
     {
     //do something

     } 
}

最佳答案

生成项目的序列 ( IEnumerable<T> ) 而不是列表可能更容易 - 您可以通过多种方式将每个项目的生命周期绑定(bind)到迭代器中,以便:

  • 你一次只有一个(我猜它们很贵)
  • 当他们的时间到了时,他们会被处理掉
  • 他们都会被处理掉,即使是错误的

这是我探索过的话题here使用 LINQ,但也有其他方法,如果您的源是(或可以是)序列。

关于c# - 我应该有返回 Disposable 实例列表的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2160999/

相关文章:

c# - XPath/HtmlAgilityPack : How to find an element (a) with a specific value for an attribute (href) and find adjacent table columns?

c# - 在连接字符串中设置 SQL Server 名称不起作用

.net - 使用 ServiceStack JsonSerializer 反序列化包含 Dictionary 属性的类型

java - 迭代 Collection,避免在循环中删除对象时出现 ConcurrentModificationException

c# - Jquery 在嵌套转发器中无法正常工作

c# - 如何在阿瓦隆尼亚扩展控制?

c# - .NET 中的动态 WSDL 位置

.net - CLR .tail 指令是否禁用抢占式 GC?

java - 放置对象类而不是泛型类型

java - 在 Java 或 Google Guava 中具有弱值的简单线程安全 Java HashMap ?