Враховуючи цей код:
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):)