我有一本名爲Book的Book對象的集合。 Book類有一個名爲Title的字段。如何檢查我的收藏中是否有符合條件的記錄?
是否有一種簡單的方法使用Linq(或其他)來找出該集合是否有一個標題爲「Harry」的Book對象?
我有一本名爲Book的Book對象的集合。 Book類有一個名爲Title的字段。如何檢查我的收藏中是否有符合條件的記錄?
是否有一種簡單的方法使用Linq(或其他)來找出該集合是否有一個標題爲「Harry」的Book對象?
可以使用Any()
方法是:
book.Any(b => string.Equals(b.Title, "Harry"));
這將通過您的收藏book
,直到找到一本書,標題爲「哈里」或您的收藏結束。如果它找到一本正確標題的書,它會停止通過您的收藏並返回true。如果它到達集合的末尾,則返回false。
編輯:請注意,這是一個culture-insensitive平等檢查。根據您的使用情況,您可能需要執行一個culture-sensitive。
b.Title.Equals是有點危險,如果標題爲空..應該是book.Any(b => string.Equals(b.Title,「Harry」)) –
@ShaunBowe好點 - 更新我的答案。 –
還要小心列表中的任何項目是否爲空。這也可能發生。 – McKay
要建立在什麼@ J.Kommer說,文化敏感的檢查將是這個樣子:
book.Any(b => string.Compare(b.Title, "Harry", CultureInfo.CurrentCulture,
CompareOptions.None) == 0);
字段或屬性?要清楚兩者的區別。 – BoltClock
@BoltClock雖然字段和屬性之間存在差異,並且可能需要小心,但在這種情況下,不會有任何區別。 – McKay