면책 조항 : 어쩌면사전 <string,T> (StringComparer) 대 사전 <string,T> 및 키를 저장합니다. 다음 중 어떤 것을 선호합니까?
문제는 대소 문자를 구분하지 조회 테이블을 구현하는 것입니다 .. 마이크로 YAGNI가-최적화 그러나 저를들을 수.
- 내 옛날 방식 : 사전을 채우는 동안 삽입하기 전에 대문자로 입력하십시오. 어떤 사람이 당신에게 조회 할 키를 줄 때 대문자.
- 새로운 방법 (오늘 배웠습니다) : Dictionary는 IComparer 구현을 사용하므로
StringComparer.InvariantCultureIgnoreCase
을 전달할 수 있습니다. 나는 String.Compare (X, Y, SomeIgnoreCaseEnum)이 새로운 방법은 내가 .ToUpper가()은 n의 각에서 수행되도록 할 필요가 없다는 점에서 장점이있다
에 위임 할 것이라고 생각 사전에 대해 조회가 수행되는 장소.
제 질문은 어떤 것이 더 효율적입니까? 그냥 궁금해서 ...
업데이트 : 참고 삽입 된 원래 키는 알 필요가 없습니다. 또한 사용되는 키는 문화에 무관심합니다.
자신의 마이크로 벤치 마크를 작성하십시오 (각 유형을 100,000 번 실행하고 가변 조건을 설명하기 위해 3 번 타이밍 지정). – Oded
명심해야 할 점이 하나 있습니다. 어떤 시점 (예 : 인쇄)에서 원래 형식으로 키가 필요한 경우 첫 번째 옵션이 최적이 아닙니다. –
@Brian - 네가 사용하는 것을 잊어 버렸다. 유스 케이스는 대소 문자를 구별하지 않으며 문화에 독립적이다. – Gishu