-1
votes

Comment initialiser les étiquettes dans la matrice d'étiquettes en utilisant?

Je veux créer 32 étiquettes de mon formulaire, donc j'ai utilisé le code comme celui-ci: xxx

mais je reçois une erreur

CS1656: Impossible d'assigner LB car il s'agit d'une variable d'itération de foresach.

une solution?


0 commentaires

4 Réponses :



0
votes

Vous devez utiliser A pour la boucle, pas pour acheter xxx


0 commentaires

1
votes

Vous pouvez utiliser une boucle pour la boucle comme décrit par les @Phils et @rickvdbosch, mais vous pouvez vous empêcher de boucles en utilisant énumérable.Sélectionnez code>:

//using System.Windows.Forms;
Label[] Lb_clubs;
Lb_clubs = new Label[32].Select(lbl => new Label()).ToArray();
foreach (Label lb in Lb_clubs)
{
    lb.Text = "somename";
    //and other codes
}


0 commentaires

0
votes

Vous ne pouvez pas affecter une valeur dans un foreach code> boucle: Vous devez également voir le lb = nouvelle étiquette (); code> marqué dans l'éditeur, qui devrait vous dire que c'est

ne peut pas attribuer à 'lb' car il s'agit d'une «variable d'itération» p> blockQuote>

qui génère un Erreur de compilateur CS1656 . P>

Vous pouvez le faire (en plus de ce que d'autres ont déjà suggéré) en une ligne, en utilisant Enumérable.Range : P>

var Lb_clubs = Enumerable.Range(0, 32).Select(idx => new Label() { 
    Text = "SomeText" + idx.ToString(), 
    Name = "SomeName" + idx.ToString() }).ToArray();


0 commentaires