2010-10-13 18 views
0

J'utilise le code suivant en C#. J'ajoute les valeurs dans l'arraylist en utilisant l'index. Maintenant, je veux lire les valeurs de l'arraylist en utilisant seulement l'index. Dans l'exemple suivant je lis simplement toutes les valeurs de l'arrylist mais je veux lire les valeurs de l'arrylist basé sur l'index (par exemple Customer_Details [i]) pour chaque élément à l'index i.Comment lire les valeurs de ArrayList des structures?

public struct Cust_Info 
     { 
      public String Client_Key; 
      public String Registration_Key; 
      public int Standard; 

      public Cust_Info(String C_Key, String Reg_Key, int Std) 
      { 
       Client_Key = C_Key; 
       Registration_Key = Reg_Key; 
       Standard = Std; 
      } 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      ArrayList Customer_Details = new ArrayList(); 
      for (int i = 0; i < 1; i++) 
      { 
       Customer_Details.Insert(i, new Cust_Info("A", "B", 1)); 
      } 

      //for (int i = 0; i < 1; i++) 
      //{ 
       Customer_Details.Insert(1, new Cust_Info("C", "D", 2)); 
       for (int i = 0; i < 1; i++) 
       { 
        ArrayList obj=new ArrayList(); 
        //((ArrayListOFStructures.Form1.Cust_Info)((new System.Collections.ArrayList.ArrayListDebugView(Customer_Details)).Items[0])).Client_Key 
        //obj = (ArrayList)Customer_Details[i]; 
        foreach (Cust_Info temp in Customer_Details) 
        { 
         //comboBox1.Items.Add(Customer_Details[0].ToString()); 
         comboBox1.Items.Add(temp.Client_Key); 
         comboBox1.Items.Add(temp.Registration_Key); 
         comboBox1.Items.Add(temp.Standard); 
        } 
       } 
     } 

Dans le code ci-dessus je veux faire l'utilisation de la structure seulement. Comment puis-je lire les valeurs de l'arrylist basé sur l'index. Pouvez-vous s'il vous plaît me fournir tout code ou lien à travers lequel je peux résoudre le problème ci-dessus?

+1

'ArrayList' devrait ne pas être utilisé. Utilisez 'List ' à la place. – Oded

+1

Quel est le point de 'pour (int i = 0; i <1; i ++)'? –

+0

Le code est très confus. Ce n'est pas clair ce que vous essayez d'atteindre ou ce qu'est exactement le problème. Vous créez une liste de tableaux, la remplissez, puis insérez un enregistrement additinoal. Ensuite, dans une boucle d'une itération, vous créez une nouvelle liste de tableaux inutilisée, puis ajoutez plusieurs éléments à une liste déroulante pour chaque structure Cust_Info de votre liste de choix. Quel est le résultat que vous désirez? –

Répondre

2

Je suis confus; vous pouvez obtenir un article sur un ArrayList par index simplement par:

Cust_Info cust = (CustInfo)theList[index]; 

Cependant, ArrayList est assez rare dans tout> = 2.0 .NET, un List<Cust_Info> rendrait ce beaucoup plus facile. En outre, Cust_Info me ressemble beaucoup comme il devrait être un class (il est très rare d'écrire un struct dans .NET, et généralement pour désigner "valeurs" - un client n'est pas une "valeur"). Et les champs publics sont aussi très découragés.

Notez que actuellement vous êtes (parce qu'il est un struct) fait copie la Cust_Info chaque fois que vous allez chercher à partir (ou le placer dans) la liste; ce n'est pas nécessairement ce que vous avez l'intention ...

0

Vous pouvez essayer quelque chose comme

ArrayList arr = new ArrayList(); 

for (int iIndex = 0; iIndex < arr.Count; iIndex++) 
{ 
    object o = arr[iIndex]; 
} 

Mais je préfère aller avec

List Class et List.Count Property

0
for(int i=0; i<Customer_Details.Count/*or.Length*/; i++) 
Customer_Details[i] = something;