2011-11-22 72 views
5

我有一本名爲Book的Book對象的集合。 Book類有一個名爲Title的字段。如何檢查我的收藏中是否有符合條件的記錄?

是否有一種簡單的方法使用Linq(或其他)來找出該集合是否有一個標題爲「Harry」的Book對象?

+0

字段或屬性?要清楚兩者的區別。 – BoltClock

+0

@BoltClock雖然字段和屬性之間存在差異,並且可能需要小心,但在這種情況下,不會有任何區別。 – McKay

回答

8

可以使用Any()方法是:

book.Any(b => string.Equals(b.Title, "Harry")); 

這將通過您的收藏book,直到找到一本書,標題爲「哈里」或您的收藏結束。如果它找到一本正確標題的書,它會停止通過您的收藏並返回true。如果它到達集合的末尾,則返回false。

編輯:請注意,這是一個culture-insensitive平等檢查。根據您的使用情況,您可能需要執行一個culture-sensitive

+3

b.Title.Equals是有點危險,如果標題爲空..應該是book.Any(b => string.Equals(b.Title,「Harry」)) –

+0

@ShaunBowe好點 - 更新我的答案。 –

+0

還要小心列表中的任何項目是否爲空。這也可能發生。 – McKay

0

要建立在什麼@ J.Kommer說,文化敏感的檢查將是這個樣子:

book.Any(b => string.Compare(b.Title, "Harry", CultureInfo.CurrentCulture, 
    CompareOptions.None) == 0); 
相關問題