【发布时间】:2012-09-11 06:43:02
【问题描述】:
如何忽略字典键中的大小写?我正在这样做:
var map = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
map.Add("e", "Letter e lower case");
string value = null;
if (!map.TryGetValue("E", out value)) {
Console.WriteLine("Not found");
}
而且我已经尝试过使用StringComparer.InvariantIgnoreCase,结果是一样的。找不到大写字母“E”。
编辑: 即使使用 OrdinalIgnoreCase,我是否会与我的环境设置存在某种文化冲突?
【问题讨论】:
-
您的代码按预期工作,找到
"E"的值。 -
代码的输出是什么?
-
在我的机器上它不起作用,没有找到密钥。我有文化问题吗?但是 OrdinalIgnoreCase 不是忽略环境文化副作用的正确配置。我的操作系统是 US_eng,但所有文化设置都是巴西葡萄牙语。
-
@Cuong Le:关于您的编辑,我有理由对 Dictionary() 的返回类型进行原型设计,而不是使用 var,这是我在需要时从特定上下文中删除的 sn-p。但是好的,它可以让样本很小,以便在此处查看。
标签: c# .net dictionary