Das folgende Snippet gibt 1 bis 10 auf der Konsole aus, wird aber erst beendet, wenn die Variable 'i' den Wert int.MaxValue erreicht. TIA für das Aufzeigen, was ich vermisse.
class Program
{
public static IEnumerable<int> GetList()
{
int i = 0;
while (i < int.MaxValue)
{
i++;
yield return i;
}
}
static void Main(string[] args)
{
var q = from i in GetList() // keeps calling until i reaches int.MaxValue
where i <= 10
select i;
foreach (int i in q)
Console.WriteLine(i);
}
}