当我认为我可以使用yield关键字时,我退后一步,看看它将如何影响我的项目.我总是最终返回一个集合而不是yeilding,因为我觉得保持yeilding方法状态的开销不会给我带来太大的影响.在几乎所有我返回集合的情况下,我觉得90%的时间,调用方法将迭代集合中的所有元素,或者将在整个集合中寻找一系列元素.
我确实理解它在linq中的用处,但我觉得只有linq团队正在编写这样复杂的可查询对象,这些对象的产生是有用的.
有没有人写过像linq这样的产品有用吗?
仍然试图找到我在实际情况下使用"yield"关键字的位置.
我在这个主题上看到了这个主题
但是在接受的答案中,他们将此作为一个例子,其中某人正在迭代Integers()
public IEnumerable<int> Integers()
{
yield return 1;
yield return 2;
yield return 4;
yield return 8;
yield return 16;
yield return 16777216;
}
Run Code Online (Sandbox Code Playgroud)
但为什么不用
list<int>
Run Code Online (Sandbox Code Playgroud)
在这里.似乎更直截了当..