簡體   English   中英

從列表中獲取值

[英]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();

(還有FirstFirstOrDefault等)

好吧,因為您所做的只是創建一個項目的列表..假設名稱是一個公共財產..

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM