В сценарии 1 вы обрабатываете весь список, а затем возвращаете этот список через интерфейс IEnumerable
.Независимо от того, что звонящий намеревается сделать с возвращенным IEnumerable
, весь список обрабатывается каждый раз, когда вызывается GetObjectsStrings
.
В сценарии 2 вы обрабатываете только столько записей из списка input
как того требует абонент.Итак, вы создаете итератор.
Вот пример, где это будет иметь значение:
var temp = GetObjectsStrings(input).First();
Сценарий 1: Вы обрабатываете input
полностью длякаждый такой звонок, каждый раз.Сценарий 2: Вы обрабатываете только первый элемент в input
.Затем итерация завершена.