相关疑难解决方法(0)

一些有助于理解"产量"

在我不断追求吸吮的过程中,我试图理解"收益"陈述,但我一直遇到同样的错误.

[someMethod]的主体不能是迭代器块,因为'System.Collections.Generic.List <AClass>'不是迭代器接口类型.

这是我遇到的代码:

foreach (XElement header in headersXml.Root.Elements()){
    yield return (ParseHeader(header));                
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我不能在迭代器中使用yield吗?那有什么意义呢?在这个例子中,它说它List<ProductMixHeader>不是迭代器接口类型. ProductMixHeader是一个自定义类,但我想List是一个迭代器接口类型,不是吗?

- 编辑 -
感谢所有快速解答.
我知道这个问题不是全新的,同样的资源不断涌现.
事实证明我认为我可以List<AClass>作为返回类型返回,但由于List<T>不是懒惰,它不能.更改我的返回类型以IEnumerable<T>解决问题:D

一个有点相关的问题(不值得打开一个新线程):IEnumerable<T>如果我确定99%的情况我将要去.ToList(),它是否值得作为返回类型给出?性能影响是什么?

c# iterator yield

36
推荐指数
3
解决办法
9361
查看次数

标签 统计

c# ×1

iterator ×1

yield ×1