求助: list泛型数据中文排序,在英文系统下失效

玄武清风 2016-12-22 10:28:36
list<object>使用orderby排序时,当操作系统是英文的时候排序失效。 object是一个参会人信息对象,想要按照姓名排序。结果开发环境因为是中文的排序没问题,部署到正式服务器排序就不对,服务器是英文系统。 各位是否有遇到过此种情况,请赐教。
...全文
130 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
string.Compare方法有个构造函数是StringComparison,这个有好几种排序方法,默认是按CurrentCulture 使用区域敏感排序规则和当前区域比较字符串 (这种排出来的结果有时候会处于你的意外,这个有专门的规范描述,当初看过,后来实在太烦,不看了)排序,你应该使用Ordinal或者OrdinalIgnoreCase排序
Poopaye 2016-12-22
  • 打赏
  • 举报
回复
引用 2 楼 little_wind_585 的回复:
[quote=引用 1 楼 xinweilee的回复:]你的object实现IComparable接口,自己控制排序
我先试试,但也可能就算实现CompareTo也无法对中文排序。[/quote] 计算机只有数字,又没有中英文,怎么会不能排序 你最多只能说排序结果和预期不符
玄武清风 2016-12-22
  • 打赏
  • 举报
回复
引用 1 楼 xinweilee的回复:
你的object实现IComparable接口,自己控制排序
我先试试,但也可能就算实现CompareTo也无法对中文排序。
xinweilee 2016-12-22
  • 打赏
  • 举报
回复
你的object实现IComparable接口,自己控制排序
玄武清风 2016-12-22
  • 打赏
  • 举报
回复
引用 4 楼 娃都会打酱油了的回复:
string.Compare方法有个构造函数是StringComparison,这个有好几种排序方法,默认是按CurrentCulture 使用区域敏感排序规则和当前区域比较字符串 (这种排出来的结果有时候会处于你的意外,这个有专门的规范描述,当初看过,后来实在太烦,不看了)排序,你应该使用Ordinal或者OrdinalIgnoreCase排序
这个方法我再试试看。
玄武清风 2016-12-22
  • 打赏
  • 举报
回复
引用 3 楼 Poopaye的回复:
[quote=引用 2 楼 little_wind_585 的回复:] [quote=引用 1 楼 xinweilee的回复:]你的object实现IComparable接口,自己控制排序
我先试试,但也可能就算实现CompareTo也无法对中文排序。[/quote] 计算机只有数字,又没有中英文,怎么会不能排序 你最多只能说排序结果和预期不符[/quote] 对的,是我没表述清,可以排序,只是中文的话就不会按照拼音字母排序了。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧