C# · 12月 23, 2021

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

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

这是我的查询:

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

输出是:

1,1232,æøå3,hallo4,kNow

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

1,hallo3,kNow4,æøå

我该如何纠正?

解决方法 如果您将使用流畅的Linq语法,您可以将字符串比较器传递给OrderBy方法: var model = db.News.OrderBy(w => w.Title,StringComparer.InvariantCulture) .ToList();

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

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