namespace ConsoleApp2
{
class Program
{
public static void Main(string[] args)
{
List<int> list = new List<int> { 3, 1, 4, 5, 2 };
IEnumerable<int> enumList = list.WhereFunc();
Array.ForEach(enumList.ToArray(), (elem) => { Console.Write(elem + ", "); });
}
}
static class a
{
public static IEnumerable<int> WhereFunc(this IEnumerable<int> inst)
{
foreach (var item in inst)
{
if (item % 2 == 0)
{
yield return item;
}
}
}
}
}
이 코드에서 결국 4, 2, 가 출력되는데
yield return이 그 다음번 호출될 때 다음라인부터 실행되게 해주잔아
근데 WhereFunc()는 한 번밖에 호출이 안됐으니까 4만 돌려받고
메서드 끝나는 거 아닌가 왜 2까지 나오는지 이해가 안돼
해당 댓글은 삭제되었습니다.
아하 ㄱㅅㄱㅅ