このコードを考えると:
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)
:)