Dado este código:
IEnumerable<object> FilteredList()
{
foreach( object item in FullList )
{
if( IsItemInPartialList( item ) )
yield return item;
}
}
Por que não devo codificá-lo dessa maneira?
IEnumerable<object> FilteredList()
{
var list = new List<object>();
foreach( object item in FullList )
{
if( IsItemInPartialList( item ) )
list.Add(item);
}
return list;
}
Eu meio que entendo o que a yield
palavra - chave faz. Diz ao compilador para criar um certo tipo de coisa (um iterador). Mas por que usá-lo? Além de ser um pouco menos de código, o que isso faz por mim?
FullList.Where(IsItemInPartialList)
:)