C# 如何检查是否存在';我的收藏中有符合条件的记录吗?

C# 如何检查是否存在';我的收藏中有符合条件的记录吗?,c#,linq,C#,Linq,我有一个叫做“书”的图书收藏。Book类有一个名为Title的字段 有没有一种简单的方法可以使用Linq(或其他)来确定该收藏是否有一个书名为“Harry”的图书对象?您可以使用以下方法: book.Any(b => string.Equals(b.Title, "Harry")); 这将遍历你的书籍收藏,直到找到一本书名为“Harry”的书或你的收藏结束。如果它找到了一本标题正确的书,它将停止浏览您的收藏并返回true。如果它到达集合的末尾,则返回false 编辑:请注意,这会进行平等

我有一个叫做“书”的图书收藏。Book类有一个名为Title的字段

有没有一种简单的方法可以使用Linq(或其他)来确定该收藏是否有一个书名为“Harry”的图书对象?

您可以使用以下方法:

book.Any(b => string.Equals(b.Title, "Harry"));
这将遍历你的
书籍
收藏,直到找到一本书名为“Harry”的书或你的收藏结束。如果它找到了一本标题正确的书,它将停止浏览您的收藏并返回true。如果它到达集合的末尾,则返回false


编辑:请注意,这会进行平等性检查。根据您的用例,您可能希望执行一个

根据@J.Kommer所说的内容,文化敏感检查将如下所示:

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

场地还是财产?请清楚两者之间的区别。@BoltClock虽然字段和属性之间存在差异,但可能需要注意,在这种特殊情况下,不会有差异。如果Title为null,则b.Title.Equals有点危险。。应该是book.Any(b=>string.Equals(b.Title,“Harry”)),并且还要注意列表中的任何项是否为空。这也可能发生。我尝试了此操作,但收到以下消息:错误1'System.Collections.Generic.ICollection'不包含'Any'的定义,并且找不到接受'System.Collections.Generic.ICollection'类型的第一个参数的扩展方法'Any'(是否缺少using指令或程序集引用?)为LINQ添加using指令:
using System.LINQ