2010-07-07 4 views
1

J'ai ceci:Coincé avec liste <>

public class accounts 
{ 
    private string mName; 
    private string mEmail; 
    private string mAddress; 

    public accounts(string Name, 
    string Email, 
    string Address) 
    { 
     this.mName = Name; 
     this.mEmail = Email; 
     this.mAddress = Address; 
    } 
} 

puis, quelque part ailleurs, je crée ceci:

private static List<accounts> mlocalaccountList = new List<accounts>() 

puis-je remplir comme ceci:

mlocalaccountList.Add(new accounts("John Smith","[email protected]","CA USA")); 

maintenant , tout est OK, sauf, comment puis-je accéder à la liste <> articles ??

+3

En outre, conformément aux lignes directrices de conception-cadre, votre nom de classe doit être singulier (car il est le stockage des informations sur un compte), et il devrait être pascals cas comme " Compte". Cela signifie également que votre liste statique privée peut être "comptes". Donc, quand vous faites votre foreach, vous pouvez faire foreach (compte compte dans les comptes) - qui est une façon commune, et intiutive d'écrire cela. De même, vos chaînes privées doivent être simplement camel comme "name", "email" et "address", sans préfixe "m". J'espère que cela pourra aider... –

Répondre

4

Vous pouvez y accéder dans une boucle foreach:

foreach (var item in mlocalaccountList) { 
    ... 
} 

cependant, puisque tous les membres sont privés, vous ne pouvez pas y accéder du tout. Envisagez de créer des propriétés pour les membres privés ou de les rendre publics.

Vous pouvez également y accéder par index:

mlocalaccountList[0] 

est le premier élément de la liste.

4

Par indexeur comme un tableau

mlocalaccountList[0] 
4
foreach (accounts a in mlocalaccountList) { /* do something */ } 

itérera dans la liste.

0

Utilisez une instruction foreach:

foreach (accounts acc in mlocalaccountList) 
{ 
... do something with acc 
} 
2

Essayez mlocalaccountList[0] ou

foreach (accounts acct in mlocalaccountList) 
{ 
    // Do something with acct 
} 
0

Bien que je ne suis pas le programme en C#, je crois qu'il est: mlocalaccountList[index] où l'indice est un entier.

1

Vous pouvez itérer sur eux:

foreach (var item in mlocalaccountList) 
{ 
    // do stuff with item 
} 

Vous pouvez utiliser LINQ:

var usaItems = mlocalaccountList.Where(a => a.Address.Contains("USA")); 
    // assuming you implement a public property for Address 
2

Je recommanderais d'utiliser une déclaration foreach ou un accès juste en utilisant une variable indexmlocalaccount[index]

1

Juste combinant la liste des réponses de tout le monde ici jusqu'à présent:

  1. Utilisez un indexeur dans la liste: mlocalaccountsList[i] renverra l'élément i'th (indice à base 0, bien sûr)
  2. itérer sur la liste utilisant une boucle.foreach(var account in mlocalaccountList) vous fournira facilement chaque élément à son tour.
  3. Utilisez une requête LINQ pour filtrer un élément spécifique de la liste. LINQ a deux styles différents de requêtes d'écriture:

    var result = mlocalaccountList.Where(a => a.Name == "John Smith")) 
    // or 
    var result = from a in mlocalaccountList 
         where a.Name == "John Smith" 
         select a; 
    
Questions connexes