Враховуючи цей код:
IEnumerable<object> FilteredList()
{
foreach( object item in FullList )
{
if( IsItemInPartialList( item ) )
yield return item;
}
}
Чому я не повинен просто кодувати це таким чином?
IEnumerable<object> FilteredList()
{
var list = new List<object>();
foreach( object item in FullList )
{
if( IsItemInPartialList( item ) )
list.Add(item);
}
return list;
}
Я начебто розумію, що yield
робить ключове слово. Це вказує компілятору побудувати певний вид речі (ітератор). Але навіщо це використовувати? Окрім того, що це трохи менший код, що це робить для мене?
FullList.Where(IsItemInPartialList)
:)