[英]using linq select from list data where
One 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
你需要看看是否有任何標簽名稱等於過濾器:
books.Where(book => book.Tags.Any(tag => tag == genre))
或使用包含方法:
books.Where(book => book.Tags.Contains(genre))
假設Tags
屬性返回一個string
序列。 如果Tag
是用戶定義的對象,請使用:
books.Where(book => book.Tags.Any(tag => tag.Name == genre))
這樣的事情應該有效
var results = books.Where(x => x.Tags.Any(t => t.Name == genre))
或這個:
var results = books.Where(x => x.Tags.Select(t => t.Name).Contains(genre))
嘗試以下方法
foreach(Book book in books.Where(x=>x.Tags.Any(t => t.Name == "tag-name")))
如果Book.Tags
是Tag
對象的集合,則應使用Any
並傳遞lambda表達式:
foreach(Book book in books.Where(x=>x.Tags.Any(t => t.Name == filter)))
如果Book.Tags
是string
s的集合,則應使用Contains
方法:
foreach(Book book in books.Where(x=>x.Tags.Contains(filter)))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.