考虑以下代码:
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)
:) - BlueRaja - Danny Pflughoeft