如果我想要一个不区分大小写的字符串键入字典,我应该使用哪个版本的StringComparer给定这些约束:
字典中的键来自C#代码或仅用英语语言环境编写的配置文件(美国或英国)
该软件已国际化,将在不同的区域运行
我通常使用StringComparer.InvariantCultureIgnoreCase但不确定这是否是正确的情况.这是示例代码:
Dictionary< string, object> stuff = new Dictionary< string, object>(StringComparer.InvariantCultureIgnoreCase);
Michael Dama.. 31
有三种比较器:
文化感知
文化不变
序数词
每个比较器都具有区分大小写和不区分大小写的版本.
一个顺序比较器使用字符的序数值.这是最快的比较器,它应该用于内部目的.
一个文化感知的比较器认为是具体到当前线程的文化方面.它知道"土耳其语i","西班牙语LL"等问题.它应该用于UI字符串.
该文化不变的比较器实际上是没有定义,会产生不可预知的结果,因此,不应该在所有使用.
参考
在Microsoft .NET 2.0中使用字符串的新建议
Greg Beech.. 12
这篇MSDN文章涵盖了您可能想要深入了解的所有内容,包括土耳其语问题.
我读了它已经有一段时间了,所以我再次这样做了.一小时见!
有三种比较器:
文化感知
文化不变
序数词
每个比较器都具有区分大小写和不区分大小写的版本.
一个顺序比较器使用字符的序数值.这是最快的比较器,它应该用于内部目的.
一个文化感知的比较器认为是具体到当前线程的文化方面.它知道"土耳其语i","西班牙语LL"等问题.它应该用于UI字符串.
该文化不变的比较器实际上是没有定义,会产生不可预知的结果,因此,不应该在所有使用.
参考
在Microsoft .NET 2.0中使用字符串的新建议
这篇MSDN文章涵盖了您可能想要深入了解的所有内容,包括土耳其语问题.
我读了它已经有一段时间了,所以我再次这样做了.一小时见!