5000 + 항목이 포함 된 일반 콜렉션이 있습니다. 모든 항목은 고유하므로 컬렉션에서 항목을 가져 오는 데 SingleOrDefault를 사용했습니다. 오늘 Red Gate ANTS 프로파일 러를 사용하여 코드를 조사한 결과, SingleOrDefault 호출이 (~ 3.5 초) 5000 반복에 대해 1800 만 건이 발생했음을 알았습니다. 반면 FirstOrDefault로 변경하면 9 백만 건 (~ 1.5 초)이 걸립니다.ANSI 프로파일 러를 보는 동안 FirstOrDefault가 SingleOrDefault보다 훨씬 빠릅니다.
컬렉션의 모든 항목이 고유하다는 것을 알고 있기 때문에 SingleOrDefault를 사용했습니다.
편집 : 우리가 SingleOrDefault를 사용해야하는 정확한 시나리오 임에도 불구하고 질문이 왜 FirstOrDefault가 SingleOrDefault보다 빠를 것입니까?
질문이 있습니까? – cadrell0
요소가 고유하다는 것을 * 이미 * 알고 있다면,'SingleOrDefault'에 의해 수행 된 추가 작업은 불필요합니다. –