2009-05-08 6 views
0

나는 AvailableBoxes라는 사전이 있습니다. 이 사전에서 문자열을 조회하고 싶습니다. 그러나 소문자를 비교하고 특수 문자를 무시하고 싶습니다. IEqualityComparer를 사용하여 사전에서 키 찾기

나는 내가 키가 사전에 있는지 알고 다음과 같은 작업을 수행 할 수 있음을 발견 :

AvailableBoxes.Keys.Contains(CurrentBox.Name, new BoxNameEqualityComparer()) 

BoxNameEqualityComparer가 IEqualityComparer를 구현하는 내 자신의 비교 자입니다.

그러나이 키의 색인을 찾는 비슷한 방법이 있습니까?

답변

1

대소 문자가없는 문자열을 비교하는 경우에는 자체 비교자를 정의 할 필요가 없습니다. 간단하게 사용하는 내장 StringComparer 클래스

AvailableBoxes.Keys.Contains(CUrrentBox.Name, StringComparer.OrdinalIgnoreCase); 

당신이 정렬 된 목록으로 키 모음을 볼 경우 특정 키의 인덱스를 결정하는 것이 가능하다. 그것은 나쁜 가정이다. 사전에 새 항목을 추가하면 Keys 컬렉션의 모든 위치에 나타날 수 있기 때문입니다.

사전에 주문하고 싶다면 OrderedDictionary를 사용하는 것이 좋습니다.

1

StringComparer 클래스에서 미리 정의 된 것을 사용하십시오.

관련 문제