在使用一次性资源时,是否有适当的方式进行迭代?返回的对象是 IDisposable 接口实现,但正在迭代的元素不是。
这里有一个示例:
public static IEnumerable<T> Fetch(IEnumerable<Guid> ids)
{
using (var client = new CouchbaseClient())
{
yield return ids.Select(s => s.ToString());
}
}
现在调用这个方法并不会释放获取到的using
资源。我知道我可以使用ToList一次性返回所有内容,但还有没有更好的方法来"适当地"处理这个问题,或者说我必须手动跟踪IDisposable资源并在完成时手动释放它?
using
,没有人指出它是不好的,但据我所知也没有人解释它为什么是可以的(或者为什么它是可以的)。 - ServyIEnumerable<IEnumerable<string>>
。我猜这不是你想要的结果。 - svick