我看到很多类似的问题,但没有一个直接回答。我有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和具有属性的类来完成。
答案 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)