#javascript #c#
#javascript #c#
Вопрос:
В моем .NET c #-коде я хотел бы отсортировать некоторые строки — в частности, в настоящее время мое приложение поддерживает два языка: английский и китайский (возможно, больше в будущем). И я хотел бы вернуть список имен на сторону клиента.
прямо перед тем, как список строк будет возвращен клиенту, я хотел бы отсортировать строки.
Мне в основном нужно делать то, что Javascript делает для «localeCompare». Это что-то, что можно сделать в коде C #? Я нашел кое-что, связанное с CultureInfo, но мне кажется, что мне нужно динамически устанавливать это значение.
Ответ №1:
Существует Sort
перегрузка, принимающая an IComparer
, которая может использоваться с учетом культуры.
Ваш клиент должен передать желаемый язык через заголовок запроса Accept-Language при запросе API, или это может быть утверждение или настройка для вошедшего в систему пользователя.
Вот пример в вашем контроллере на стороне API:
var requestLanguage = "zh-Hans"; // pass the correct one
namesList.Sort(StringComparer.Create(new CultureInfo(requestLanguage), true));
true
Параметр указывает, что он чувствителен к регистру. Вы можете найти cultureinfo в MSDN.