c# - 什么时候返回延迟的 IEnumerable<T> 是错误的形式

标签 c# .net linq

我很好奇是否有人对何时返回延迟的 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/

相关文章:

c# - 从另一个线程在 webbrowser 中加载大型 html 文件

c# - Outlook 电子邮件中 ​​HTML 页面的格式丢失

c# - Autofixture,创建一个字典列表<string, object> 交替键

c# - Visual Studio 2008,定时器,C#

asp.net - IEnumerable 不能与类型参数一起使用

C#:如何根据子元素的属性过滤 XML 文件的结果?

c# - 从联接映射 - 类型 'CarDTO' 出现在单个 LINQ to Entities 查询中的两个结构不兼容的初始化中

C# 流读取器 ReadToEnd() 缺少最后一个字符

c# - 在 SharePoint 2013 中以编程方式创建文件夹

c# - 通过 ref - 内存占用在堆栈上传递 'value type'