이 코드가 주어지면 :
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)
:)