Linq orderby culture(丹麦语,æøå)

时间:2013-04-13 23:34:44

标签: 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, æøå

我该如何纠正?

1 个答案:

答案 0 :(得分:9)

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

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

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

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