Comment faire pour ajouter à la fin du tableau C#?
Comment puis-je ajouter un nouveau item
d'un contrôle TextBox et un Bouton sur un Formulaire Windows à la fin d'une ArrayList
qui fait référence à une classe?
private product[] value = new product[4];
value[1] = new product("One",5)
value[2] = new product("Two",3)
value[3] = new product("Three",8)
Flux de travail
- Entrer de nouveaux produits détails dans
textbox1
,textbox2
,textbox3
- Lorsque je clique sur
Add
le nouveau produit est ajouté au tableau:value[1] = new product("One",5)
value[2] = new product("Two",3)
value[3] = new product("Three",8)
value[4] = new product("Four",2)
Quel est le code pour faire cela?
Correction firstline devrait être: privé [valeur] = new produit[4] Timmy
corrigé pour vous 🙂
Je vois que vous avez posté le même commentaire en réponse à quelques réponses en disant que vous ne souhaitez pas utiliser une Liste. Est-il une raison?
Méfiez-vous cependant que la valeur[0] n'est pas initialisé. Il pourrait être sur le but, bien que.
corrigé pour vous 🙂
Je vois que vous avez posté le même commentaire en réponse à quelques réponses en disant que vous ne souhaitez pas utiliser une Liste. Est-il une raison?
Méfiez-vous cependant que la valeur[0] n'est pas initialisé. Il pourrait être sur le but, bien que.
private product[] value = new product[4];
signifie que vous allouer de la place pour 4 produits. Les tableaux sont à zéro indexés en C#, donc à la première affectation de la ligne doit être value[0] = new product("One",5)
au lieu de 1.OriginalL'auteur Timmy | 2009-12-03
Vous devez vous connecter pour publier un commentaire.
Les tableaux sont de taille fixe, ce qui signifie que vous ne pouvez pas ajouter plus d'éléments que le nombre alloué au moment de la création, si vous avez besoin d'un ajustement automatique de la taille de la collection vous pouvez utiliser
List<T>
ou unArrayList
Exemple:
Timmy, vous devez utiliser tout ce qui fait plus de sens pour vous, mais si vous le savez,
List<T>
etArrayList
à la fois une utilisation interne privé de tableau qui est redimensionnée à l'aide du Tableau.Resize() automatiquement lors de l'ajout ou de la suppression d'éléments.Ok Désolé j'ai oublié de mentionner que je ne veux pas de ça pour grandir en gros parce que c'est un test pour le moment...Donc environ 2 nouveaux produits... ce travail: privé [valeur] = new produit[5]; la valeur[0] = new produit("Un",5) valeur[1] = new produit("Deux",3) la valeur[2] = new produit("Trois",8) ou comme ceci: private produit[] valeur = new produit[5]; la valeur[0] = new produit("Un",5) valeur[1] = new produit("Deux",3) la valeur[2] = new produit("Trois",8) [3] = new produit(textBox1,textBox2) valeur[4] = new produit(textBox1,textBox2)
OriginalL'auteur
Utiliser la Liste comme les autres personnes mentionnées.
Si vous êtes fixé sur les tableaux, l'utilisation
Si vous allez seulement d'être l'ajout d'un couple de produits (plus de la durée de vie de votre tableau) il suffit de faire quelque chose comme
Si vous êtes va être l'ajout d'un lot de produits, vous voulez peut-être faire quelque chose de semblable à ce que cette Liste n'est comme ceci:
Combien de produits prévoyez-vous d'ajouter? Vérifier mon montage.
A noter que depuis un paramètre de référence est nécessaire, cette méthode ne peut pas être utilisé sur une propriété d'un objet.
OriginalL'auteur s_hewitt
Je pense que vous avez besoin d'un
List<product>
collection, en regardant votre code. Ensuite, il suffit d'appeler leAdd()
méthodeOriginalL'auteur Russ Cam
Vous ne pouvez pas ajouter des éléments à un tableau, vous devez créer un nouveau tableau plus grand et copier les éléments. Il y a une méthode pour que, qui est un peu trompeuse nommé
Resize
comme il ne fait pas les redimensionner le tableau:Si vous souhaitez ajouter des éléments à une collection, vous devez utiliser une Liste à la place:
Edit:
Si vous voulez redimensionner le tableau, vous pouvez augmenter la taille au lieu de le transformer à une valeur spécifique:
Oui, mais à l'aide de l'index zéro vous préférez le redimensionner à quatre, ou peut-être l'augmentation de la taille par un (se modifier ci-dessus).
Êtes-vous sûr que le code est correct? Suis gettin erreurs: 1 La meilleure méthode surchargée match pour le Système.Tableau.Redimensionner<produits>(réf des produits.la valeur de[], int)' a certains arguments non valides et 2 Erreur Argument '1' doit être passé avec le " ref " mot-clé
Corrigés. L'appel doit avoir le mot-clé ref, tout comme dans le premier exemple.
OriginalL'auteur Guffa
Tableaux sont à zéro, indexés, donc un tableau initialisé à une taille de 4 ne pouvait être accessible jusqu'à l'indice 3...
Si vous souhaitez que le tableau de croître, alors vous devez soit l'initialiser au moins aussi grand que vous voulez être en mesure de croître, ou autre, vous devez créer un nouveau tableau avec la nouvelle largeur de la taille et de la copie de l'ancien tableau; pas très efficace.
Dans ce cas, vous feriez mieux d'utiliser une collection comme une liste, plutôt qu'un tableau, de sorte que la taille peut augmenter dynamiquement.
+1 Wow, ne peux pas croire que je n'ai pas pris que trop. @Timmy, votre valeur[1] = new produit("Un",5), faut vraiment lire la valeur[0] = new produit("Un",5)
Désolé j'ai oublié de mentionner que je ne veux pas de ça pour grandir en gros parce que c'est un test pour le moment...Donc environ 2 nouveaux produits...ce travail: privé [valeur] = new produit[5]; la valeur[0] = new produit("Un",5) valeur[1] = new produit("Deux",3) la valeur[2] = new produit("Trois",8) ou comme ceci: private produit[] valeur = new produit[5]; la valeur[0] = new produit("Un",5) valeur[1] = new produit("Deux",3) la valeur[2] = new produit("Trois",8) [3] = new produit(textBox1,textBox2) valeur[4] = new produit(textBox1,textBox2)
OriginalL'auteur John Weldon
Vous devriez aussi jeter un oeil à Tableau versus Liste: Quand utiliser?
OriginalL'auteur Sune Rievers