【发布时间】:2013-10-14 07:54:51
【问题描述】:
我有点吃不消了。从我在 .Net 中阅读的有关 StringComparison 的所有文档中,InvariantCulture 应该在过滤器为“ke"
.Where(fp => filter == null ||
(fp.RealName.StartsWith(filter, StringComparison.InvariantCultureIgnoreCase)))
但它仍然迫使我输入特定语言的字母。
我不确定它是否重要,但数据库是 Ms SQL 2012 Express。
有什么想法吗?
【问题讨论】:
-
好吧,它也不适用于
e中的许多其他dialects,例如é、è、ẻ、ẽ、ẹ、ê -
@KingKing 那么 InvariantCulture 选项的意义何在?
-
@Alireza 很好,据记录它应该可以工作,但由于某些奇怪的原因它没有,我不知道为什么。
-
有人打电话给 Jon Skeet
-
您从哪里得知 InvariantCulture 应该以这种方式工作?据我所知,InvariantCulture 根本不是为了那个。它只是为了为您的应用程序区域提供一致的文化,这些区域不应根据当前的线程文化表现出不同的行为。例如,您可能将 XML 文件中的日期保存为字符串,而不是同时写入日期和文化,您可能希望将日期写入 InvariantCulture 并将日期读取为 InvariantCulture。然后在 UI 中您可以将其转换为当地文化。
标签: c# sql-server linq string-comparison invariantculture