我想比较 2 个集合。其中一个是 a List<string>
,另一个是 a List<Book>
。Book 有一个 Isbn 类型的属性string
,我想写这样的东西:
List<string> isbnBooks= new List<string> {"978-1933988276", "978-0321146533", "3"};
List<Book> books = new List<Book>();
books.Add(new Book { Isbn="978-1933988276", Name="The Art of Unit Testing"});
books.Add(new Book { Isbn="978-0321146533", Name="TDD By Example"});
books.Add(new Book { Isbn="978-0321503626", Name="Growing Object-Oriented Software"});
// What I want to write
var intersectedBooks = books.Intersect(books, isbnBooks, (book, isbn) => book.Isbn == isbn));
我想在方法中指定相等性。是否可以 ?或者我应该强制创建一个实现 IEqualityComparer 接口的 BookComparer 吗?
问候,
弗洛里安