访问列表中的类的属性<class>

时间:2015-05-26 02:48:41

标签: c#

我看到很多类似的问题,但没有一个直接回答。我有List<ClientEntry>。我想访问ClientEntry中的属性。我的代码如下所示:

class ClientEntry
{
    private string _clientName;
    private string _clientEmail;

    public void ClientEntry(string name, string email)
    {
        this._clientName = name;
        this._clientEmail = email;
    }

    public string ClientName
    {
        get
        {
            return _clientName;

        }
        set
        {
            _clientName = value;
        }
    }

    public string ClientEmail
    {
        get
        {
            return _clientEmail;
        }
        set
        {
            RegexUtilities Validator = new RegexUtilities();
            if (Validator.IsValidEmail(value))
            {
                _clientEmail = value;
            }
        }
    }
}

随后:

private List<ClientEntry> clientList;

然后我将一堆ClientEntry添加到List。

如何访问clientList中的项目的ClientName和ClientEmail属性?另外,如何检查List中某个ClientName或ClientEmail属性的存在?甚至可以使用对象列表吗?我知道dict可能会更好,但我想看看是否可以使用List和具有属性的类来完成。

4 个答案:

答案 0 :(得分:7)

您可以使用Linq使用Any()

在列表中查找值

例如

bool emailExists = clientList.Any(x=>x.ClientEmail == <email>);

要访问值,您可以使用索引访问器(如果您知道它),循环集合或使用Where()进行搜索:

var email = clientList[index].ClientEmail

foreach (var client in clientList)
{
    var email = client.ClientEmail
}

var email = clientList.Where(x=>x.ClientName == <clientName>).FirstOrDefault();

答案 1 :(得分:5)

您可以浏览以下列表

 foreach (ClientEntry client in clientList)
  {
    //client.ClientName
    //client.ClientEmail
  }

查找特定记录,您可以将其搜索为

clientList.Where(p=> p.ClientEmail == "email@domain.com").FirstOrDefault();

答案 2 :(得分:4)

要访问列表中的特定项目,请输入索引/使用foreach

string name = clientList[index].ClientName;

foreach(var client in clientList)
{
    name = client.ClientName; // access the item one by one
}

要检查属性的某个值是否存在,请使用linq

bool isExist = clientList.Any(i => i.ClientName == "John");

答案 3 :(得分:2)

使用Extension Methods

像这样的东西,你可以轻松地对扩展类编写单元测试,也可以直接阅读。

BorderLayout
相关问题