【问题标题】:C# LINQ string.startsWith is not ignoring culture specific lettersC# LINQ string.startsWith 不会忽略特定于文化的字母
【发布时间】: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


【解决方案1】:

这就是 SQL Server 字符串排序的意义所在。您可以在表格列上设置排序规则。

【讨论】:

    猜你喜欢
    • 2021-03-20
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多