Je rencontre un problème intéressant avec le code suivant. productObject est un objet personnalisé qui contient un certain nombre de variables liées au produit, y compris un 'VendorLocationId'.ASP.net C# numéro de tableau magique
Compte tenu de ces éléments dans une zone de liste:
valeur "Ville A": 1
valeur "Ville B": 2
donné également: les deux éléments sont sélectionnés au sein de la zone de liste.
1 productObjectArray[] productObjectArray = new productObjectArray[lstLocation.Items.Count];
2 int counter = 0;
3 foreach (ListItem li in lstLocation.Items)
4 {
5 if (li.Selected == true)
6 {
7 productObject.VendorLocationId = li.Value;
8 productObjectArray[counter] = productObject;
9 }
10 counter++;
11 }
Après l'exécution, le code ci-dessus donne ce résultat:
productObjectArray[0].VendorLocationId = 2
productObjectArray[1].VendorLocationId = 2
Je trouve cela laisse perplexe. Si je passe par le code, productObjectArray [0] .VendorLocationId = 1 et counter = 1 jusqu'à la ligne 7. Then productObjectArray [0] .VendorLocationId est magiquement égal à 2 et counter = 1.
Exactement raison, merci. J'ai corrigé le code en générant un nouvel objet pour chaque élément de tableau. – Paulj