Из того, что я прочитал,
yield return <value>
выскакивает из функции в момент выполнения строки. Однако текст Скотта Гатри указывает на то, что
var errors = dinner.GetRuleViolations();
успешно вытаскивает список всех нарушений правил, хотя GetRuleViolations представляет собой длинный список
if(String.someFunction(text))
yield return new RuleViolation("Scary message");
if(String.anotherFunction(text))
yield return new RuleViolation("Another scary message");
Как это работает?