2010-10-29 66 views
0

我有一個IList<Customer>,我想找到一個姓氏爲'smith'的客戶。我怎麼做? .where看起來可能有效,但我不明白做這個所需的謂詞。還是有更好的方法來搜索列表?IList <T>搜索幫助

謝謝, 杆。

回答

2

如果你想第一個客戶它自己的姓氏是「史密斯」,使用FirstOrDefault

var customer = customerList.FirstOrDefault(c => c.LastName == "smith"); 

if (customer != null) 
    // do code; 

,如果你想要所有的客戶,他們的姓氏是'smith',請使用Where

var customers = customerList.Where(c => c.LastName == "smith"); 

foreach(var customer in customers) 
    // do code; 

祝你好運!

3

試試這個,假設你的IList是customers對象:

var smiths = customers.Where(c => c.LastName == "Smith"); 
2

爲了擴大對其他職位:

任何方法如Where()這需要該謂詞返回一個布爾值謂詞的需求。該謂詞將針對集合中的每個元素進行評估,並且對於謂詞返回true的每個元素,該元素將包含在結果集合中。

記住Where()返回集合(我相信IEnumerable<Customer>在您的方案,但我沒有VS現在開放驗證),您將需要使用First()Single()獲得的單個元素(其中包括)。您也可以在任何單一方法上使用謂詞,如Single()Last()以避免鏈接Where(x => blah).Single()