区分文化的字符串排序

时间:2019-04-19 22:46:13

标签: javascript c#

在我的.NET c#代码中,我想对一些字符串进行排序-具体来说,目前我的应用程序支持英文和中文两种语言环境(将来可能会更多)。而且我想将名称列表返回给客户端。

在将字符串列表返回给客户端之前,我想对字符串进行排序。

我基本上需要做Javascript为“ localeCompare”所做的事情。那可以在C#代码上完成吗?我发现了一些与CultureInfo有关的东西,但在我看来,我需要动态设置该值。

1 个答案:

答案 0 :(得分:2)

有一个Sort重载,接受一个IComparer,可以用来识别文化。

您的客户端在请求API时应通过Accept-Language request-header传递所需的语言,否则可能是已登录用户的声明或设置。

这是您的API内控制器示例:

var requestLanguage = "zh-Hans"; // pass the correct one

namesList.Sort(StringComparer.Create(new CultureInfo(requestLanguage), true));

true参数表示区分大小写。您可以找到cultureinfo on MSDN

Docs about the String Comparer.