首页 > 解决方案 > 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);

标签: linq

解决方案


顺序由CurrentCultureCurrentUICulture 示例确定:

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


推荐阅读