Dictionary<string,object>のキーについて、ある文字列と全角半角を無視して比較を行おうとしていた。
最初は
Dictionary<string,object> dic=new Dictionary<string,object>(StringComparer.CurrentCultureIgnoreCase);
と設定すればいけるだろうと考えていたが、これでは全角半角は区別してしまうみたいだ。
他のCultureでも同様だ。
仕方ないので、以下のようにやった。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
//比較対象の文字列 string target="AAA"; //比較されるDictionary Dictionary<string, objectt> dic = new Dictionary<string, objectt>() { { "AAA", "BBB" }, {"CCC","DDD"} }; foreach (var key in dic.Keys) { if(string.Compare(key,target, System.Globalization.CultureInfo.CurrentCulture, System.Globalization.CompareOptions.IgnoreWidth)==0) { //比較対象と一致したときの動作 } } |
もっと良いやり方があるような気がするのだけど。