.net5,net6的Linq排序OrderBy结果不对的解决方案
OrderBy方法作为Linq的排序,是经常用的方法。
在.net5之前的版本,用法直接是:
var newList= ulist.OrderBy(x => x.UserName).ToList();
但是自从.net5后,这样就会出现异常,有中文、英文都有的时候,排序就会出现问题。
解决方案:
需要加个参数StringComparer.InvariantCulture,比如:
var newList= ulist.OrderBy(x => x.UserName, StringComparer.InvariantCulture).ToList();
原因:
https://learn.microsoft.com/en-us/dotnet/core/extensions/globalization-icu
https://learn.microsoft.com/en-us/dotnet/standard/base-types/string-comparison-net-5-plus
作者:沐雪
文章均系作者原创或翻译,如有错误不妥之处,欢迎各位批评指正。本文版权归作者和博客园共有,如需转载恳请注明。
如果您觉得阅读这篇博客让你有所收获,请点击右下方【推荐】
为之网-热爱软件编程 http://www.weizhi.cc/