[英]Getting a value from from a list
我有一個類,在該類中有一個返回類型客戶端列表的函數,該列表包含有關客戶端的所有信息,但現在我想知道如何才能訪問名稱,僅用於列表的示例。請看下面
ClientsInfo類中的函數:
public List<Clients> GetClientsByID(int clientID)
{
ClientsData cData = new ClientsData();
List<Clients> listClients = new List<Clients>();
DataTable dtClients = cData.GetClientsByID(clientID).Tables[0];
foreach (DataRow row in dtClients.Rows)
{
this.Name = row["Name"].ToString();
this.Address = row["Address"].ToString();
this.BussinessName = row["Bussiness"].ToString();
}
listClients.Add(this);
return listClients;
}
Name,Address和Bussiness是這個類中的一個屬性..現在我從其他地方這樣調用這個列表
List<Clients> clientL = ClientsInfo.GetClientsByID(client_id);
現在我得到了存儲在clientL中的信息,我該如何僅檢索名稱? 客戶?
我假設您使用的是.NET 3.5或更高版本,因此您可以使用LINQ。 事實上,我敦促你在GetClientsByID
代碼中使用LINQ,但是把它放在一邊......
那么你在這里有多個客戶,而不僅僅是一個。 所以你可以得到多個名字:
IEnumerable<string> names = clientL.Select(x => x.Name);
或者作為List<string>
:
List<string> names = clientL.Select(x => x.Name).ToList();
如果您確定只有一個值可以使用Single
:
string name = clientL.Select(x => x.Name).Single();
如果可能有零或一個,則可以使用SingleOrDefault
:
// name will be null if clientL was empty
string name = clientL.Select(x => x.Name).SingleOrDefault();
(還有First
, FirstOrDefault
等)
好吧,因為您所做的只是創建一個項目的列表..假設名稱是一個公共財產..
clientL[0].Name
應該這樣做
您可以使用LINQ來檢索此信息:
List<string> clientNames = clientL.Select(c => c.Name).ToList();
您可以使用LINQ方法:
string clientName = clientL.Where(client => client.ID == 1).Select(client => client.Name).FirstOrDefault();
或者檢索所有名稱:
List<string> clientNameList = clientL.Select(client => client.Name).ToList();
嘗試這個:
List<string> clientL = ClientsInfo.GetClientsByID(client_id).Select(x => x.Name).ToList();
這將只為您提供名稱列表。
使用LINQ:
var names = from c in ClientsInfo.GetClientsByID(client_id)
select c.Name;
然后, names
是包含所有名稱的IEnumerable<string>
。
如果那不是您想要的,請再次解釋您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.