Passage de tableau entre les formes en valeur et la gestion des tableaux
Je veux transférer un tableau de Form1 pour Form2, puis sur Form2 ajouter quelques valeurs dans le tableau.
Sur Form1 cliquez sur le bouton j'ai mis ce code:
int[] arrayOfInt = new int[4];
arrayOfInt[0] = 19;
arrayOfInt[1] = 12;
Form2 frm2 = new Form2();
frm2.TakeThis(arrayOfInt);
frm2.Show();
Dans la form2 j'ai créé TakeThis(int[])
qui attire les valeurs de la form1 et afficher les valeurs de la matrice sur l'étiquette. Maintenant, je ne peux pas comprendre comment ajouter des valeurs à un tableau. Par exemple arrayOfInt[2]
et arrayOfInt[3]
et de l'envoyer à Form3.
Modifier:
J'ai décidé d'utiliser une Liste pour stocker mes données, mais à la fin, je dois convertir un
liste à un tableau parce que je suis en train de faire des rapports et des opérations mathématiques avec les données.
Cet exemple est différent de l'exemple ci-dessus. Dans ce magasin, toutes les entrées de textboxs,comboxes dans la liste. À la fin, j'ai besoin de convertir la liste dans un tableau.
Qu'ai-je fait,
J'ai créé une nouvelle catégorie:
static class List{
static List<string> list;
public static void NewList(){
list=new List<string>();
}
public static void Save(string value){
list.Add(value);
}
public static void Display(){
foreach(var value in list){
MessageBox.Show(value);
}
}
}
Les données sont insérées entre les formes,
List.save(some_strings);
...
mais à la fin j'ai besoin de convertir la liste dans un tableau. J'ai googlé et j'ai trouver la ToArray()
fonction mais je ne sais pas comment l'utiliser dans mon code. J'ai essayé avec des propriétés, mais je ne pouvais pas faire la conversion. S'il vous plaît aider.
Edit2
J'ai trouvé la solution.
Dans le global statique de la classe Liste, j'ai créé une méthode qui retourne une Liste de chaînes de caractères:
public static List<string> GetList(){
return list;
}
Ensuite, j'ai créé une nouvelle Liste vide de cordes sur Form2. Copié la liste ancienne à la nouvelle liste et l'a converti en un tableau.
List<string> li=new List<string>();
li=List.GetList();
string[] temp=li.ToArray();
Voir mon édité répondre
OriginalL'auteur xplorer00 | 2010-12-17
Vous devez vous connecter pour publier un commentaire.
Ne pas utiliser des tableaux si vous voulez une structure de données dont vous avez besoin pour ajouter des éléments.
Utiliser une collection générique comme
List<T>
.Dans votre cas, une liste d'entiers serait un
List<int>
.Quand sur
Form2
, votreTakeThis
fonction devrait ressembler à ceci:Cela fonctionnera également lors du passage de la liste à une autre forme, comme
List
est un type de référence, tandis que les tableaux sont des types de valeur. Si vous ne savez pas ce que cela signifie, voir cet article.OriginalL'auteur Oded
Plutôt utiliser
ArrayList
ou encore mieuxIList<T>
.Les tableaux ne peuvent pas être redimensionnées en C#
OriginalL'auteur Philip Fourie
Vous devrez utiliser
ref
argument surfrm2.TakeThis()
méthode:Voici un article MSDN : Passage de Tableaux à l'Aide de ref et (Guide de Programmation C#).
et à utiliser comme:
Tableaux ont besoin de passé par référence si vous souhaitez conserver les modifications.
Si vous ne devez pas utiliser une
Array
utiliser unCollection
commeSystem.Collections.Generic.List<T>
.OriginalL'auteur decyclone
Utilisation
List<Int>
et l'utilisationoList.Add(item)
méthode pour ajouter des éléments comme le tableau est Fixe dans la Longueur (vous avez déjà en lui donnant la taille au moment de l'initialisation)Mais si vous voulez utiliser le tableau à tout prix faire ensuite une logique de créer un nouveau tableau jusqu'à la taille de l'Ancien+ nouveau l'ajout d'un élément et de retour que.
Mis à JOUR
Je crois que vous êtes confrontés problème parce que vous avez pris la Liste de String ou Int.
pourquoi faire
List
deString
?? Faire de typeInt
. Et dire quels sont les problèmes auxquels vous êtes confrontés en ce moment? est-il de la Conversion à partir de la Liste de Tableau ou de la Somme de tous les éléments??Salut Fasih, j'ai besoin d'une liste globale. Que je peux insérer des chaînes entre les formes (par exemple. à partir de zones de texte,zones de liste modifiables). Puis convertir cette liste globale dans un tableau. Indices de la matrice de m'aider à savoir où sont les données(par exemple. txtbox1.texte=>array[0],txtbox2=>array[2]).
OriginalL'auteur Singleton