Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

169
Views
¿Cómo puedo normalizar el orden de clasificación de los guiones publicitarios entre las máquinas?

Tengo un servidor Windows 2019 (configurado en en-US para todas las configuraciones de idioma) para el cual se encuentra el siguiente código:

 var unsorted = new[] {"Aldi", "Al-Murad Tiles", "AliExpress" }; Console.WriteLine("Unsorted: " + string.Join(',', unsorted)); var sorted = unsorted.OrderBy(x => x); Console.WriteLine("Sorted: " + string.Join(',', sorted));

Produce:

ingrese la descripción de la imagen aquí

Tengo una máquina con Windows 11 (configurada en en-GB para todas las configuraciones de idioma) para la cual se produce el mismo código:

ingrese la descripción de la imagen aquí

No hace ninguna diferencia si configuro la cultura del hilo actual para que sea la misma que la del servidor:

 Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");

¿Alguien sabe qué configuración se debe aplicar al subproceso actual para que el código existente se clasifique de la misma manera en la máquina con Windows 11 que en el servidor?

(vale la pena decir que este es un ejemplo extraído de una base de código heredada mucho más grande, por lo que me gustaría hacer cambios mínimos en el código para afectar el subproceso/contexto/entorno actual para que esta clasificación funcione en lugar de refactorizar el código existente)

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

En .NET 5, las API de globalización ahora usan bibliotecas ICU, en lugar de NLS, en Windows , por lo que si una de sus máquinas se ejecuta en .NET 5 y la otra ejecuta una versión anterior, esto podría explicar por qué cambiar el subproceso actual. La información cultural no ayuda en absoluto.

Puedes usar una comparación Ordinal :

 var sorted = unsorted.OrderBy(x => x, StringComparer.Ordinal);

Alternativamente, también puede hacer que su aplicación .NET 5 use NLS editando runtimeconfig.json

 "configProperties": { "System.Globalization.UseNls": "true" }

O configurando la variable de entorno DOTNET_SYSTEM_GLOBALIZATION_USENLS .

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!