我有一個IList<Customer>
,我想找到一個姓氏爲'smith'的客戶。我怎麼做? .where看起來可能有效,但我不明白做這個所需的謂詞。還是有更好的方法來搜索列表?IList <T>搜索幫助
謝謝, 杆。
我有一個IList<Customer>
,我想找到一個姓氏爲'smith'的客戶。我怎麼做? .where看起來可能有效,但我不明白做這個所需的謂詞。還是有更好的方法來搜索列表?IList <T>搜索幫助
謝謝, 杆。
如果你想第一個客戶它自己的姓氏是「史密斯」,使用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;
祝你好運!
試試這個,假設你的IList是customers
對象:
var smiths = customers.Where(c => c.LastName == "Smith");
爲了擴大對其他職位:
任何方法如Where()
這需要該謂詞返回一個布爾值謂詞的需求。該謂詞將針對集合中的每個元素進行評估,並且對於謂詞返回true
的每個元素,該元素將包含在結果集合中。
記住Where()
返回集合(我相信IEnumerable<Customer>
在您的方案,但我沒有VS現在開放驗證),您將需要使用First()
或Single()
獲得的單個元素(其中包括)。您也可以在任何單一方法上使用謂詞,如Single()
或Last()
以避免鏈接Where(x => blah).Single()
。