我很好奇是否有人对何时返回延迟的 IEnumerable<T>
有任何经验法则或最佳实践或调用ToArray()
在从函数返回之前在它上面。
例如,作为 API 的使用者,我认为我更喜欢 IEnumerable<Widget> GetWidgets()
这样的方法扔一个HttpException
当我调用它而不是在枚举结果时抛出它。
public IEnumerable<Widget> GetWidgets(IEnumarable<int> widgetIds) {
return widgetIds.Select(id => GetWidgetFromWidgetWebService(id));
}
最佳答案
我总是喜欢返回延迟的 IEnumerable<T>
当它被推迟没有明显的副作用时。例如,如果可枚举基于可能会更改的内部集合,我宁愿先对其求值。
但是,如果正在计算可枚举等,那么我通常会推迟它。
关于c# - 什么时候返回延迟的 IEnumerable<T> 是错误的形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13940930/