private IEnumerable <Book> GetMatchedBooks(ISearchCriteria <Book> searchCriteria)
 {
     foreach (var book in this.books)
     {
         if (searchCriteria.IsMatch(book))
         {
             yield return(book);
         }
     }
 }
        /// <summary>
        /// Finds book by criteria.
        /// </summary>
        /// <param name="searchCriteria">Given criteria.</param>
        /// <returns>Found book.</returns>
        public Book FindBookByTag(ISearchCriteria <Book> searchCriteria)
        {
            foreach (var book in this.books)
            {
                if (searchCriteria.IsMatch(book))
                {
                    return(book);
                }
            }

            return(null);
        }