2012-01-20 2 views
1

linq 객체가 다른 테이블에서 참조되는지 확인하는 가장 빠른 (가장 빠른) 방법은 무엇입니까? Normaly 나는이 방법을 수행하지만 이것은 더 큰 테이블에서 느릴 수 있습니다 같아요.linq 객체가 참조되었는지 확인

CurrentObject.ReferencingObjects.Count != 0 

더 빠를 수도 있습니다.

CurrentObject.ReferencingObjects.FirstOrDefault() != null 

더 좋은 방법이 있습니까?

답변

2

하는 경우 (대부분의 구현) Count 종종 직접 저장 될 때, 첫 번째 옵션은, 실제로는 더 빠른 것 같다 (이, 그것은 Count특성을 가지고 주어진 것으로 보인다) 그래서이 효과적으로 그냥 ReferencingObjects 구현 ICollection<T> 들판을 직접 찾는 부동산.

경우, 그러나, 당신은 Enumerable.Count()에게 (방법이 아닌 속성)를 사용하고, 그 다음 나의 선호하는 방법 대신 사용하는 것입니다 :

CurrentObject.ReferencingObjects.Any(); 

Any() 방법은 매우 명확하게 의도를 보여주는으로하고, 또한 일반적으로 매우 빠릅니다.

관련 문제