Diberikan kode ini:
IEnumerable<object> FilteredList()
{
foreach( object item in FullList )
{
if( IsItemInPartialList( item ) )
yield return item;
}
}
Mengapa saya tidak harus hanya kode seperti ini ?:
IEnumerable<object> FilteredList()
{
var list = new List<object>();
foreach( object item in FullList )
{
if( IsItemInPartialList( item ) )
list.Add(item);
}
return list;
}
Saya agak mengerti apa yang dilakukan yield
kata kunci. Ini memberitahu kompiler untuk membangun hal tertentu (sebuah iterator). Tapi mengapa menggunakannya? Terlepas dari itu kode yang sedikit kurang, apa fungsinya bagi saya?
FullList.Where(IsItemInPartialList)
:)