-3
votes

Comment additionner deux chaînes et ajouter à une classe de liste?

asientos.Add(letras[i] + fila[n]);
string sillaletra = letras[i] + fila[n]; 
asientos.Add(sillaletra);
c#

3 commentaires

Merci Shawn. Il est trop tard pour moi, mais vous avez empêché les autres de partager mon destin.


Vous avez plus de lettres (9) que de chiffres (8). Veuillez également traduire et mettre en retrait vos questions pour que les gens vous aident plus facilement. Déboguer avant de publier.


"Quelqu'un sait qui régler ça?" Ouais, n'essayez pas d'accéder à des index supérieurs à la longueur du tableau.


3 Réponses :


1
votes

Vous avez plus de lettres que de chiffres, ajoutez une liste privée fila = nouvelle liste {"1", "2", "3", "4", "5", "6", "7", "8", "9" }; et cela fonctionnera.


1 commentaires

Thnk j'apprécie votre aide <3, je le résout en faisant le bon pour. si vous voyez le for () que je fais pour () dans for (), pour la même liste i qui ne fonctionne pas. désolé pour mon mauvais eng. @Hasse



1
votes

Vous parcourez la même longueur. Dans votre boucle, les deux se terminent à la position letras.Count , mais la liste n'a pas la même longueur.

Votre boucle doit itérer sur la longueur de chaque tableau comme ceci:

for (int i = 0; i < letras.Count; i++)
{
    for (int n = 0; n < fila.Count; n++)
    {
        //...
    }
}

Notez que le premier tableau va de 0 à letras.Count .

Et la seconde passe de 0 à fila.Count .

Maintenant, chaque position est itérée.


0 commentaires

0
votes

Il semble que vous recherchez une jointure cartésienne , c'est-à-dire que vous voulez que List<string> soit

  using System.Linq;

  ... 

  public Asient() {
    asientos = letras
      .SelectMany(letter => fila.Select(digit => letter + digit))
      .ToList();
  }

Si c'est votre cas, vous pouvez mettre une simple requête Linq pour cela:

  { "A1", "A2", ..., "A8", "B1", ..., "B8", ..., "J8" } 


0 commentaires