このコードを考えると:
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
キーワードの意味がなんとなくわかりました。これは、特定の種類のもの (反復子) を構築するようにコンパイラに指示します。しかし、なぜそれを使用するのですか?コードがわずかに少ないことを除けば、それは私にとって何をしますか?