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

357
Visualizações
Combinando contenidos de 2 listas en C#

Acabo de empezar a aprender C#. Quiero combinar 2 listas y devolver la salida. Por ejemplo:

Lista 1 = Pedro, Tony, Steve
Lista 2 = Parker, Stark, Rogers

Lista final/Salida:
Peter Parker
tony stark
steve rogers

Aquí están mis códigos:

 using System; using System.Collections.Generic; using System.Linq; namespace HelloWorld { class Program { static void Main(string[] args) { var projectTeam = "Group Avengers"; Console.WriteLine("Avengers Assemble"); string[] firstNames = {"Peter", "Tony", "Steve"}; string[] lastNames = {"Parker", "Stark", "Rogers"}; IList<string> combinedNames = new List<string>(); foreach (string firstName in firstNames) { foreach (string lastName in lastNames) { Console.WriteLine(firstName + lastName); } } } } }

Salida real:

 Avengers Assemble PeterParker PeterStark PeterRogers TonyParker TonyStark TonyRogers SteveParker SteveStark SteveRogers

Rendimiento esperado:

 Avengers Assemble Peter Parker Tony Stark Steve Rogers
over 4 years ago · Santiago Trujillo
6 Respostas
Responde à pergunta

0

En su código, solo necesita un ciclo y debe ser for , no foreach

 for (var i = 0; i< firstNames.Length; i++) { string firstName = firstNames[i]; string lastName = lastNames[i]; Console.WriteLine(firstName + lastName); }

También puede reemplazar esto con IEnumerable.Zip ( https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.zip?view=net-6.0 )

 firstNames .Zip(lastNames, (first, last) => first + last) .ToList() .ForEach(x=>Console.WriteLine(x));

Tenga en cuenta que ambos enfoques asumen que tanto firstNames como lastNames tienen la misma cantidad de elementos.

over 4 years ago · Santiago Trujillo Relatório

0

Esto se puede hacer con LINQ Zip() :

 var fullNames = firstNames.Zip(lastNames, (first, last) => $"{first} {last}")

Zip toma las dos listas y las revisa simultáneamente, aplicando la función a cada par.

over 4 years ago · Santiago Trujillo Relatório

0

Puede usar un bucle for y acceder a las listas a través del índice:

 for(int i = 0; i < Math.Min(firstNames.Length, lastNames.Length); i++) { Console.WriteLine(firstNames[i] + lastNames[i]); }

mejor sería almacenar las dos informaciones relacionadas en una clase común, por ejemplo Avenger con propiedades FirstName y LastName .

Otra forma de vincular dos listas relacionadas es Zip de LINQ:

 var zippedAvengers = firstNames.Zip(lastNames, (f,l) => f + " " + l); foreach(string name in zippedAvengers) Console.WriteLine(name);
over 4 years ago · Santiago Trujillo Relatório

0

Si alteras el bucle:

 for (int i=0; i < firstNames.Count; i++) { Console.WriteLine(firstNames[i] + " " + lastNames[i]); }

Funcionará.

Como nota al margen: en las versiones más nuevas de .NET, puede simplificar la concatenación con $"{firstNames[i]} {lastNames[i]}"

Además, la solución .Zip (propuesta por Serg):

 firstNames .Zip(lastNames, (first, last) => first + " " + last) .ToList() .ForEach(x=>Console.WriteLine(x));

seria mas eficiente

over 4 years ago · Santiago Trujillo Relatório

0

Lo que estás haciendo es emparejar cada elemento de la primera lista con cada elemento de la segunda lista. Pero lo que quieres hacer, si te entiendo bien, es hacer coincidir el primer elemento de la primera lista con el primer elemento de la segunda lista.

Para hacer eso, no te daré el código para que puedas aprender, pero puedo mostrarte a dónde ir:

  1. Asegúrese de que sus listas tengan el mismo tamaño , de lo contrario obtendrá una excepción al intentar acceder a un índice inexistente
  2. Use for loop en lugar de foreach , son menos intuitivos pero más útiles en esta situación. Para cada índice de las dos listas, haga que el mismo índice de la tercera lista (el resultado) corresponda a la concatenación de los dos, por ejemplo:
 result[0] = firstList[0] + secondList[0];

(Para tener un espacio entre los dos, debe agregar un espacio entre el primer y el segundo elemento de la lista)

over 4 years ago · Santiago Trujillo Relatório

0

Está ejecutando dos bucles for sin ningún motivo. Simplemente ejecute un solo ciclo de i = 0 a i = 3 (no incluido). Luego puede elegir el i-ésimo elemento de ambas listas. Ejemplo. for i = 0, firstNames[0] = "Peter" lastNames[0] = "Parker" Puede imprimir

Console.WriteLine(firstNames[i] + " " + lastNames[i]);

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