다음을 통해 공유


비효율적인 목록<T>입니다. 사용 현황 찾기

이 문서에서는 사용 시 List<T>.Find성능 인사이트를 설명합니다.

원인

List<T>.Find 메서드를 사용하면 성능이 저하됩니다.

성능 인사이트 설명

이 메서드는 List<T>.Find 목록을 통해 선형 검색을 수행하므로 각 조회에 대해 O(n) 시간이 복잡합니다. 자주 또는 큰 목록에서 항목을 검색할 때 비효율적일 수 있습니다.

가능하면 사용 또는 .를 사용하는 Dictionary<TKey,TValue> 것이 좋습니다 HashSet<T>. 값 Dictionary<TKey,TValue> 에 키 또는 고유 속성을 할당할 수 있는 경우 사용할 수 있습니다. 고유한 값을 HashSet<T> 저장하는 경우 사용할 수 있습니다. 이러한 두 대체 데이터 구조 모두 각 조회에 대한 O(1) 시간 복잡성을 in O(n)에 비해 갖습니다 List<T>.Find.

경고를 조사하는 방법

CPU 사용량 도구에서 소스 코드 보기를 클릭하여 사용되는 위치를 List<T>.Find 찾습니다. 가능하면 코드를 리팩터링하여 더 빠른 조회를 통해 대체 데이터 구조를 사용합니다.

참고하십시오

.NET의 사전