
제목 그대로 LINQ는 lazy 하다.
LINQ는 쿼리를 반환할뿐 실 사용할때 평가된다.

뭐 아무튼 그렇기때문에 Lazy 한 시퀀스를 다루는것처럼 주의 해야한다.
예전에 블로깅한 https://see-ro-e.tistory.com/222?category=849800
Lazy 한 시퀀스에서의 부수효과가 있는 함수 사용시 주의
포커 게임을 제작하다가 다음과 같은 코드를 사용했다. let Random = System.Random() type Suit = Spade | Dia | Heart | Club type Card = {suit:Suit; number:int} type Concentration = Card * bool * int let..
see-ro-e.tistory.com
와 같은 현상이 발생할수있다.
특히 LINQ는 안에서 람다를 자주쓰는데 람다함수가 부수효과를 가진경우 골치아퍼진다.
728x90
'프로그래밍 언어 노트 > C#' 카테고리의 다른 글
| [C#] 닷넷의 기본 파일 처리함수는 부정확할 수 있다 (0) | 2020.02.25 |
|---|---|
| NLog 날짜별 파일 저장. (0) | 2020.02.03 |
| [C#] Properties to Dictionary (0) | 2020.01.30 |
| [UWP] 사용자 라이브러리 UWP 에서 사용 (0) | 2019.12.12 |
| [UWP] 브로드 파일 권한 획득 [제한된 접근 권한 값] 사용 (0) | 2019.12.12 |