C#学习教程:使用哪个版本的StringComparer如果这是正确的情况。这是示例代码:Dictionarystuff=newDictionary(StringComparer.InvariantCultureIgnoreCase);这篇MSDN文章涵盖了您可能想要深入研究的所有内容,包括土耳其语问题。好久没读了,所以又来了。一小时后见!共有三个比较器:每个比较器都有区分大小写和不区分大小写的版本。序号比较器使用字符的序号值。这是最快的比较器,应该用于内部目的。文化感知比较器考虑特定于当前线程文化的方面。它知道诸如“Turkishi”、“SpanishLL”之类的问题。它应该用于UI字符串。文化不变比较器实际上没有定义,可能会产生不可预测的结果,所以根本不应该使用。参考在Microsoft.NET2.0中使用字符串的新建议“不区分大小写”的概念是一个语言概念,因此没有文化意义。有关详细信息,请参阅此博客。如果您只是谈论使用拉丁字母表的字符串,那么您可能正在使用InvariantCulture。但是,最好使用StringComparer.CurrentCulture创建字典。例如,这将允许“?”匹配德国文化词典中的“ss”。由于密钥是您知道的固定值,因此InvariantCultureIgnoreCase或OrdinalIgnoreCase应该有效。避免特定文化的文章,或者你可以点击一些更“有趣”的东西,比如“土耳其语”问题。显然,如果你要比较文化价值观,你会使用文化比较器……但听起来你不是。StringComparer.OrdinalIgnoreCase比InvariantCultureIgnoreCaseFWIW稍快(根据MSDN,“序数更快,但不区分文化”。当然,您必须进行大量比较才能注意到差异。InvariantCulture专为处理内部字符串而设计程序,与用户数据或UI无关。听起来是这样。System.Collections.Specialized包括StringDictionary。MSDN的“备注”部分指出“键不能为空,但值可以。键是大小写-insensitive方式;在与字典的字典一起使用之前将其转换为小写。在.NETFramework1.0版中,此类使用区分区域性的字符串比较。但是,在.NETFramework1.1及更高版本中,此类使用UseCultureInfo。InvariantCulturewhencomparingstrings.更多关于culture如何影响比较和排序,参见Comparingandsortingculture-specificdata和Performingculture-insensitivestringoperations以上是C#学习教程:使用哪个版本如果所有内容分享给StringComparer对你有用,你需要了解更多C#学习教程,希望你多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
