linq - LINQ orderby 不在瑞典文化中工作
问题描述
如何根据 CurrentUICulture 设置 LINQ orderby
var actorQuery = (from actor in actorList
where !actor.IsLocked
select new { Id = actor.Id, Name = string.Format("{0} {1}", actor.Name, actor.BusinessId) }).OrderBy(actor => actor.Name);
解决方案
顺序由CurrentCulture
非CurrentUICulture
示例确定:
var a = new string[] {"å","ä","ö","a","b","c"};
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("sv-SE");
a.OrderBy(x => x).Dump(); //a,b,c,å,ä,ö
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
a.OrderBy(x => x).Dump(); //a,ä,å,b,c,ö
所以只需CurrentCulture
在你设置的同时设置CurrentUICulture
推荐阅读
- xml - 如何将源树中的转义字符保留在结果树中?
- c# - 服务器响应为:需要 5.7.0 身份验证。了解更多信息
- django - 使用 Solr 作为搜索引擎时关于 django-haystack 的问题
- reactjs - 仅用于 Web 项目的 React Native Web?
- powershell - PSRemoting(使用 SSL)从 Docker 容器到 HostMachine
- javascript - 如何判断视图组件是否已完全加载
- c# - Blazor 获取 div 位置/坐标
- java - 在这种情况下是否可以避免 N+1 个请求?
- security - 如何让我的 Heroku 应用在 https:// 而不是 http:// 上运行?
- javascript - Django HTML,如何通过 AJAX 传递单选选项并加载表单