다음과 같은 코드가 있다고 가정 해 보겠습니다.Linq 여러 Froms 결과를 캐시합니까?
IEnumerable<Foo> A = meh();
IEnumerable<Foo> B = meh();
var x =
from a in A
from b in B
select new {a, b};
meh
이 IEnumerable
을 반환한다고 가정 해 봅시다. 반복 할 때 값 비싼 계산을 많이 수행합니다. 물론 계산 된 결과를
IEnumerable<Foo> A = meh().ToList();
을 사용하여 수동으로 캐싱 할 수 있습니다. A 및 B 수동 캐싱이 필요한지 또는 위의 쿼리가 실행 중 A 및 B 자체의 결과를 캐시하는 경우 제 질문입니다. 따라서 각 줄은 한 번만 계산됩니다. 2 * n과 n * n 계산의 차이는 엄청날 수 있으며 MSDN에서이 동작에 대한 설명을 찾지 못했습니다. 그 이유는 묻습니다.
실제로 많은 의미가 있습니다. – mafu
Goodo. 기본적으로 LINQ *는 일반적으로 "벙어리이지만 예측 가능"한 접근 방식을 취합니다. 이는 IMO의 좋은 점입니다. –