using linq select from list data where

.net, c#, linq

Solution

you need to see if any tag name is equal to the filter:

books.Where(book => book.Tags.Any(tag => tag == genre))

or use Contains method:

books.Where(book => book.Tags.Contains(genre))

assuming `Tags` property returns a sequence of `string`. If `Tag` is a user-defined object, use:

books.Where(book => book.Tags.Any(tag => tag.Name == genre))

Problem

One `Book` has list of `Tag` objects. Using `linq` I want to select list of books where any tag name contains specified filter. ``` string genre; // filter List<Book> books = repository.GetBooks(); foreach(Book book in books.Where(x=>x.Tags.Any())) //I'm stuck here ```

Original source