IT

C #에서 문자열 키 유형의 대소 문자 구분 사전

lottoking 2020. 7. 1. 07:38
반응형

C #에서 문자열 키 유형의 대소 문자 구분 사전


내가 있다면 대소 문자를 구분하지 않는 Dictionary<String,...>방법을 만들 수 ContainsKey있습니까?

이것은 관련이있는 것처럼 보이지만 제대로 이해하지 못했습니다 : c # Dictionary : 선언을 통해 키를 대소 문자를 구분 하지 않도록하십시오.


이것은 관련이있는 것처럼 보이지만 제대로 이해하지 못했습니다 : c # Dictionary : 선언을 통해 키를 대소 문자를 구분하지 않도록하십시오.

실제로 관련이 있습니다. 해결책은 사전 인스턴스에 표준 문자열 비교 방법 (대소 문자 구분)을 사용하지 말고 대소 문자를 구분하지 않는 것입니다. 이것은 적절한 생성자를 사용하여 수행됩니다 .

var dict = new Dictionary<string, YourClass>(
        StringComparer.InvariantCultureIgnoreCase);

생성자는 IEqualityComparer키를 비교하는 방법을 사전에 알려주 는를 기대 합니다.

StringComparer.InvariantCultureIgnoreCaseIEqualityComparer대소 문자를 구분하지 않고 문자열을 비교 하는 인스턴스를 제공합니다 .


var myDic = new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase);
myDic.Add("HeLlo", "hi");

if (myDic.ContainsKey("hello"))
    Console.WriteLine(myDic["hello"]);

타사 또는 외부 dll에서 가져온 사전을 다루는 경우는 거의 없습니다. linq 사용

YourDictionary.Any(i => i.KeyName.ToLower().Contains("yourstring")))

참고 URL : https://stackoverflow.com/questions/13988643/case-insensitive-dictionary-with-string-key-type-in-c-sharp

반응형