1. Como aporte, se modificó un poco el código que traía de clase anterior, agregue el método de GetCustomFilter utilizando el delegado como parámetro Func<Book, bool> para poder filtrar a conveniencia desde donde se invoque una instancia de esta clase LinqQueries, como se aprecia en la imagen 2. Combinando esta forma con delegados y Linq se saca un poder increíble al momento de por ejemplo filtrar:
LinqQueries queries = new LinqQueries();
Func<Book, bool> filtro = x => x.PublishedDate.Year >= 2000 && x.PageCount > 600;
var filtrado = queries.GetCustomFilter(filtro);
_Y ahí mismo se puede concatenar más condiciones dando un dinamismo en el filtrado que de otra manera es mas complicado. _
2. También se modificó la clase de Book.cs sobrescribiendo el método ToString() para devolver el string parseado que estamos mostrando por consola para ver el Titulo, páginas y fecha publicación y el signo de pregunta al final del tipo de cada propiedad es para dejar la propiedad de tipo Nullable o que acepta valores null. En la sección o archivo de Program.cs solo de crea la instancia nueva, se crea la variable filtro que tiene la definición de la expresión de nuestro filtro (año publicación >= 2000 y además que las páginas sean mayor a 600) Lo importante de esta parte es que podemos desde la instancia aplicar el filtro que se quiera, y no depender de la clase con la implementacion.
_3. Aqui el resultado _
4. y como ya es costumbre la imagen completa
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?