c# - Linq orderby 文化(丹麦语,æøå)

标签 c# asp.net-mvc linq entity-framework

我的 orderby linq 表达式有问题。它以错误的顺序生成输出。我来自丹麦并创建了一个丹麦语网站,因此订单必须准确无误。

这是我的查询:

var model = (from w in db.News
                orderby w.Title
                select w).ToList();

输出是:

1, 123
2, æøå
3, hallo
4, know

正确的顺序应该是这样的:

1, 123
2, hallo
3, know
4, æøå

我该如何纠正这个问题?

最佳答案

如果您要使用流畅的 Linq 语法,您可以将字符串比较器传递给 OrderBy 方法:

var model = db.News.OrderBy(w => w.Title, StringComparer.InvariantCulture)
              .ToList();

顺便说一句,您可以使用 StringComparer.Create 方法创建特定于您的文化的字符串比较器:

StringComparer.Create(new CultureInfo("da-DK"), true)

关于c# - Linq orderby 文化(丹麦语,æøå),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15994098/

相关文章:

C# 对列表进行重复数据删除并合并列表

c# - C# 中的 LINQ 查询和子查询枚举计数?

c# - 如何在 C# 中订购字典?

c# - 使用 C# 在投票中发布多项选择

asp.net-mvc - 如何为 ASP.NET MVC 开发 "shippable"组件?

asp.net-mvc - 为剑道网格列绑定(bind)客户端模板中的两个字段

c# - 在 C# 中,如何按对象的多个字段对对象集合进行排序?

C# 压缩文件。如何提取或跳过名称中包含无效字符的文件?

c# - xbuild 因 (.html) 资源文件而失败

c# - gRPC 中是否有可能在没有客户端证书的情况下建立安全通道?