나는 나 자신이 흐린 토요일 아침 생각을 앉아 : 직관적conjuncted 조건과 multiple Where 메서드 호출간에 차이가 있습니까?
IEnumerable<SomeType>
someThings = ...,
conjunctedThings = someThings.Where(thing => thing.Big && thing.Tall),
multiWhereThings = someThings
.Where(thing => thing.Big).Where(thing => thing.Tall);
, 나는 conjunctedThings없이보다 느린 multiWhereThings을 계산하지만 실제로는 일반적인 경우의 차이가 될 것이라고 말하고 싶지만?
큰 물건과 큰 소리가 나면 공유에 따라 계산이 다르게 진행될 수 있지만 그 부분을 무시하고 싶습니다.
고려해야 할 다른 속성이 있습니까? 예 : 열거 형 또는 다른 것의 유형?
그것은 _ "..."_에 달려 있습니다. 예를 들어 Entity Framework를 살펴보십시오. 열거자를 호출 할 때 모든 조건을 가진'Where' 또는 조건마다'Where'를하든 모든'Where' 's는 하나의 SQL WHERE으로 압축 될 것입니다. – CodeCaster
@CodeCaster 감사합니다. 내가 언급 한 것 이외의 의존성 주위에 몇 줄을 그리는 데주의해야합니까? –
"Conjuncted"(굉장한 단어 btw)'Where'와'Select' 쿼리는 LINQ to Objects에 의해 최적화됩니다. 성능 문제가 발생할 때마다 가장 좋은 방법은 ** 스톱워치를 꺼내 두 가지 방법으로 시도하는 것입니다 **. 그럼 알게 될거야. 여기서 얻은 답은 추측입니다. 실적 질문이있을 때 측정을 대신 할 수는 없습니다. –