나는 대부분의 작업에 대해 키로 단일 항목을 검색해야하지만이 있습니다. 그러나 몇 가지 작업에 대해서는 범위와 관련된 항목으로 작업해야합니다 열쇠. 이 작업을 수행하는 방법은 내가 관심있는 범위와 일치하는 GetKeys
및 FindAll
을 사용하는 것이지만 누군가가 더 나은 방법을 제안 할 수 있는지 궁금해하고 있습니다.사전에서 키 범위를 효율적으로 가져 오는 방법
3
A
답변
4
해시 테이블로 구현되는 Dictionary
은 키에 대한 범위 선택 작업을 효율적으로 수행하는 데 특히 적합하지 않습니다. 지정된 범위 내에서 모든 키를 찾으려면 모든 키를 방문해야합니다. 이를 수행하는 좋은 방법은 간단한 LINQ 표현식을 사용하여 키 모음을 쿼리하는 것입니다.
1
당신이 말했듯이, 모든 것이 작동 할 것입니다. 아마 뭔가;
dictionary.FindAll(entry => multipleStrings.Contains(entry.Key));
3
SortedList
또는 SortedDictionary
는 다음 범위의 상단에 요소를 통과하여 범위의 하단에있는 키를 얻기 위해 시도 할 수 있도록 항목을 정렬 할 것이다.
SortedList
에서 이진 검색을 사용하면 범위의 맨 아래 또는 가장 가까운 높은 값과 일치하는 키의 색인을 얻을 수 있습니다. How to perform a binary search on IList<T>?
관련 문제
- 1. 일반 사전에서 값 목록을 가져 오는 방법
- 2. ActionScript 사전에서 키 가져 오기
- 3. 모든 하위 단위를보다 효율적으로 가져 오는 방법
- 4. 파이썬에서 파일의 라인 범위를 가져 오는 방법
- 5. Visual Basic 사전에서 "closest"키 가져 오기
- 6. 사전에서 위치별로 키 - 값 가져 오기
- 7. 중첩 된 사전에서 데이터를 가져 오는 방법 C#
- 8. 시간 범위를 가져 오는 Oracle 쿼리가 필요합니다.
- 9. COM Interop를 통해 Excel에서 특정 범위를 가져 오는 방법?
- 10. IEqualityComparer를 사용하여 사전에서 키 찾기
- 11. plist 사전에서 키 편집 중입니까?
- 12. 모델 상태/모델 상태 사전에서 키 이름 가져 오기?
- 13. 기존 순서로 사전에서 모든 키의 배열을 가져 오는 방법은 무엇입니까?
- 14. 사전을 반복하고 내부 사전에서 값을 가져 오는 것
- 15. 사전에서 JSON 문자열의 사전을 가져 오는 방법은 무엇입니까?
- 16. 다른 열에 키 범위를 삽입하는 방법
- 17. 하위 키 이름을 가져 오는 방법은 무엇입니까?
- 18. BouncyCastle의 TLS API를 사용하여 키 저장소를 가져 오는 방법
- 19. OutputStream 가져 오는 방법
- 20. 파일을 가져 오는 방법
- 21. mysqldb 가져 오는 방법
- 22. csv로 가져 오는 방법
- 23. groovyx.net.http를 가져 오는 방법
- 24. 사용자 정의 유형에서 범위를 효율적으로 사용하려면?
- 25. 정렬 된 사전에서 두 키 사이의 지점을 찾는 방법
- 26. 모든 UiTableViewCell의 이미지를 효율적으로 가져 오는 방법은 무엇입니까?
- 27. Java에서 텍스트 파일의 끝 부분을 효율적으로 가져 오는 방법은 무엇입니까?
- 28. URL을 사용하여 이미지를 빠르고 효율적으로 가져 오는 방법은 무엇입니까?
- 29. 안드로이드에서 리소스의 짧은 배열을 효율적으로 가져 오는 방법은 무엇입니까?
- 30. 지금 월말까지 날짜 범위를 가져 오는 방법은 무엇입니까?