我有一个IEnumerable<IDisposable>
需要在给定时间处理的集合。问题在于,在某些情况下,所有对象都属于一种类型,并且需要通过从对象中收集一些数据并进行一次 RPC 调用来处理对象。在其他情况下,对象将是另一种类型,我只需要对它们中的每一个调用 Dispose。
我控制执行此操作的代码,但我不想将实现细节推入其中。
如果必须,我可以切换到这样的东西,但它似乎不优雅。
with(var rpc = new RPCDisposer())
{
foreach (var item in Items)
{
rpc.Add(item);
item.Dispose();
}
}
编辑:列表(现在)将只包含一种类型或另一种类型,从不包含两者。但我宁愿 Dispose 代码根本不需要知道 RPC 的东西,ei:
foreach (var item in Items)
item.Dispose();