T에서 속성 값으로 검색 가능한 컬렉션을 갖고 싶습니다.이 속성은 수명 동안 여러 번 변경 될 가능성이 있습니다 검색의 속도는 중요합니다. 선형 검색은 중요하지 않습니다..NET에서 개체의 속성을 지정하여 개체 모음을 가장 빨리 검색하십시오.
사전의 별도 인스턴스를 성공적으로 사용했지만 다른 컬렉션을 유지하는 것이 마치 뾰족한 것처럼 보입니다. 더 좋은 방법이 있기를 바랍니다.
하나의 가능성은 속성별로 정렬 된 내 개체를 정렬 된 상태로 유지할 수있는 SortedSet 클래스를 사용하는 것입니다. SortSet을 Array에 복사하고 Array.BinarySearch를 사용할 수는 있지만 검색 할 때마다이 배열을 만드는 오버 헤드를받을 수 없습니다. SortedSet에서 BinarySearch를 사용할 수있는 방법이 있습니까?
필자는이 질문을 적어도 두 번 이상 보았지만 필자는 내 사전 접근 방식에 대한 분명한 대안을 생각할 수 없었습니다.
.Net 4.0을 사용하고 있습니다.
동등 검색입니까? 또는 범위 검색? 크기는 얼마입니까? (얼마나 많은 레코드가 있습니까?) 인덱스 된 고유 한 값입니까? –
평등 검색, 500-5000 품목. 색인 값은 고유합니다. 이 속성은 메시지의 일부로 다른 시스템에 전송되는 자동 생성 식별자입니다. 검색은 "다른"시스템이 응답으로 응답 할 때 발생합니다. 그런 다음 T의 내 인스턴스에 응답을 적용해야합니다. – sevzas