2010-07-07 96 views
1

我有这样闷:与列表<>

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; 
    } 
} 

然后,别的地方,我创建了这一点:

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

然后我填满它是这样的:

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

现在,一切都OK,除了我怎样才能访问列表<>项目?

+3

此外,每个框架设计指南,你的类名称应为单数(因为它是存储有关一个账户信息),并且它应该是帕斯卡情况,如“帐户”。这也意味着你的私人静态列表可能是“账户”。所以,当你做你的foreach时,你可以做foreach(帐户中的帐户) - 这是一种常见的,并且写作的方式。同样,你的私人字符串应该只是像“姓名”,“电子邮件”和“地址”,没有“m”前缀的骆驼。希望这有助于... – 2010-07-07 15:37:19

回答

4

您可以访问他们在foreach循环:

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

然而,由于所有成员是私人的,你根本无法访问它们。考虑为私人会员制作属性或将其公开化。

您还可以通过索引来访问它们:

mlocalaccountList[0] 

是列表中的第一项。

4

通过分度等的阵列

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

将遍历列表。

0

使用foreach语句:

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

尝试mlocalaccountList[0]

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

虽然我在C#中没有计划,我相信它是:mlocalaccountList[index]其中指数是一个int。

1

您可以在它们之间迭代:

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

你可以使用LINQ:

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

我会建议使用foreach陈述或刚刚接触通过使用index变量mlocalaccount[index]

1

就结合大家的答案列表到这里为止:

  1. 使用一个索引到列表:mlocalaccountsList[i]将返回第i个元素(从0开始的索引,当然)
  2. 遍历该列表使用循环。foreach(var account in mlocalaccountList)将轻松地为您提供每个元素。
  3. 使用LINQ查询过滤列表中的特定元素。 LINQ有两种不同的写作风格查询:

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