1
함수에서받는 사전에 대/소문자를 구분하지 않는 비교자가 있는지 확인해야합니다.C#에서 사전 비교 자의 유형을 어떻게 결정합니까?
즉. 소문자를 구분 사전과 같이 선언 : 내 함수에 사전을받을 때
var myDict = new Dictionary<string, decimal>(StringComparer.OrdinalIgnoreCase);
내가 .Comparer 속성에 액세스 유형을 확인하실 수 있습니다 -하지만 내가 얻을 수가 모두입니다 -
System.Collections.Generic.EqualityComparer<string>
사용되는 Compareer가 StringComparer.OrdinalIgnoreCase인지 어떻게 알 수 있습니까?
시나리오를 재현 할 수 없습니다. 그 비교자를 전달하고'.Comparer'가'System.OrdinalComparer'를 얻는 지 확인합니다. 'new Dictionary()'과 같은 기본 생성자를 사용하고 있지 않습니까? –
흠 - 코드를 밟았으며 기본 생성자를 사용하지 않고 있다고 확신합니다. 다른 하나는 함수의 동작이 대/소문자 구분과 관련하여 변경된다는 것입니다. 따라서 StringComparer.OrdinalIgnoreCase가 생성자에이를 추가 할 때 효과가 있습니다. – dan
죄송합니다 - 당신 말이 맞아요. 나는 일부 테스트 코드와 실제 내용이 섞여있다. 아래 답변은 트릭을 수행합니다. – dan