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

177
Visualizações
Consigue la cuerda más larga y más corta de forma estética

Tengo las siguientes líneas en mi código. Están ocupando más lugar del que deberían. Cualquier sugerencia para un código más pequeño.

 string longestString; string shortestString; if (string1.Length > string2.Length) { longestString = string1; shortestString = string2; } else { longestString = string2; shortestString = string1; }

Lo sé, no es una pregunta realmente importante, pero esto toma 2/3 de todo el método y no las cosas importantes.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Quizás:

 int diff = string1.Length.CompareTo(string2.Length); string longestString = diff > 0 ? string1 : string2; string shortestString = diff > 0 ? string2 : string1;

Pero si tiene más de estas dos cadenas y desea una solución general, puede usar:

 var lenLookup = new[] { string1, string2 }.OrderBy(s => s.Length).ToList(); string shortestString = lenLookup.First(); string longestString = lenLookup.Last();
over 4 years ago · Santiago Trujillo Relatório

0

Dado que su código siempre realizaría la ruta si o si no, elija una como "predeterminada" y combínela con la declaración de variable:

 string longestString = string2 string shortestString = string1; if (string1.Length > string2.Length) { longestString = string1; shortestString = string2; }

Puntos de bonificación por el hecho de que realmente inicializará esas variables.

over 4 years ago · Santiago Trujillo Relatório

0

Bueno, podrías hacer esto para aclarar tu método;

 public string GetLongestString(string str1, string str2) { return str1.Length > str2.Length ? str1 : str2; } public string GetShortestString(string str1, string str2) { return str1.Length > str2.Length ? str2 : str1; } string longestString = GetLongestString(string1, string2); string shortestString = GetShortestString(string1, string2);

¡Y reutilízalo cuando quieras!

Diablos, hazlo aún más genial (en modo cooperativo con Tim);

 public IEnumerable<string> GetLongestStrings(params string[] strings) { //returns first string with largest length out of given argumenst int maxSize = strings.Max(str => str.Length); return strings.Where(s => s.Length == maxSize); } public IEnumerable<string> GetShortestStrings(params string[] strings) { //returns first string with shortest length out of given arguments int minSize = strings.Min(str => str.Length); return strings.Where(s => s.Length == minSize); }

Uso;

 string longestString = GetLongestStrings("str1", "str2", /*...*/ "strN").FirstOrDefault();

EDIT1: Mi primera implementación no es la más eficiente. Como sugirió Tim;

 public string GetLongestString(params string[] strings) { return strings.OrderBy(s => s.Length).First(); } public string GetShortestString(params string[] strings) { return strings.OrderByDescending(s => s.Length).First(); }

Uso;

 string longestString = GetLongestString("str1", "str2", /*...*/ "strN");
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