Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

173
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda