Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

172
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda