一个Book有Tag对象列表.使用linq我想选择任何标签名称包含指定过滤器的书籍列表.
string genre; // filter
List<Book> books = repository.GetBooks();
foreach(Book book in books.Where(x=>x.Tags.Any())) //I'm stuck here
Run Code Online (Sandbox Code Playgroud)
你需要看看是否有任何标签名称等于过滤器:
books.Where(book => book.Tags.Any(tag => tag == genre))
Run Code Online (Sandbox Code Playgroud)
或使用包含方法:
books.Where(book => book.Tags.Contains(genre))
Run Code Online (Sandbox Code Playgroud)
假设Tags属性返回一个序列string.如果Tag是用户定义的对象,请使用:
books.Where(book => book.Tags.Any(tag => tag.Name == genre))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5788 次 |
| 最近记录: |