Angesichts dieses Codes:
IEnumerable<object> FilteredList()
{
foreach( object item in FullList )
{
if( IsItemInPartialList( item ) )
yield return item;
}
}
Warum sollte ich es nicht einfach so codieren?:
IEnumerable<object> FilteredList()
{
var list = new List<object>();
foreach( object item in FullList )
{
if( IsItemInPartialList( item ) )
list.Add(item);
}
return list;
}
Ich verstehe irgendwie, was das yield
Schlüsselwort bewirkt. Es weist den Compiler an, eine bestimmte Art von Dingen (einen Iterator) zu erstellen. Aber warum es benutzen? Was macht es für mich, abgesehen davon, dass es etwas weniger Code ist?
FullList.Where(IsItemInPartialList)
:)