Publish:

태그:

카테고리:


지연 실행(계산) 이라는 개념을 알게 되어서 찾아봤다.
그리고 기억해두기 위해 써놓는 글.

1
2
3
var list = new int[] { 10, 20, 30, 40, 45, 50 };
list.Where(x => x > 30)
    .Select(x => x * x);

list를 순회하며 30보다 큰 값만 골라낸 컬렉션을 만들고
이 컬렉션을 순회하며 각각 제곱하는 코드이다- 라고 생각하겠지만,
실제로 이 코드는 아무 동작도 하지 않는다.

1
2
3
4
5
6
7
8
9
10
var list = new int[] { 10, 20, 30, 40, 45, 50 };
list
  .Where(x => {
    Console.WriteLine($"[Where] {x}");
    return x > 30;
  })
  .Select(x => {
    Console.WriteLine($"[Select] {x}");
    return x * x;
  });

확인해보기 위해 위의 코드에서 로그를 찍은 코드이다.
Where에서 x 값을 30과 비교하기 전에 x값을 출력하고, Select로 순회할 때 마다 x값을 출력하도록 한다.



이슈 및 공부한 것을 기록해두는 개인 블로그 입니다. 댓글, 피드백 환영합니다 🙂

Update:

댓글남기기