No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripción 🔥

Aprende todo un fin de semana sin pagar una suscripción 🔥

Regístrate

Comienza en:

4D
0H
41M
4S

Selección dinámica de datos

16/26
Recursos

Aportes 4

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Les comparto mi funcion generica que aprovecha el uso de funciones anonimas como parametros para filtrar, ordenar y seleccionar los datos dandole dinamismo a la implementacion. considere _librosLt como el listado de libros disponibles para consultar

    public IEnumerable<dynamic> GetCustomBook(
        Func<Book, dynamic> select,
        Func<Book, bool> where,
        Func<Book, object> order,
        int take,
        int skip = 0)
    {
        return this._librosLt
            .Where(where)
            .OrderBy(order)
            .Take(take)
            .Select(select);
    }

Y asi seria su invocacion

LinqQueries queries = new LinqQueries();

var selectCustom = queries.GetCustomBook(select: x => new Book { Title = x.Title, PageCount = x.PageCount },
                                         where: x => x.PageCount > 400,
                                         order: x => x.PublishedDate,
                                         take: 4,
                                         skip: 0);

foreach (var i in selectCustom)
    Console.WriteLine(string.Format("{0, -60} {1, 15}\n", i.Title, i.PageCount));
public List<Book> getTop3FromBooks(IEnumerable<Book> books){
    return books.Take(3).Select(p=> new Book(){Title = p.Title, PageCount = p.PageCount}).ToList();
}

public class BookDTO{
    public string Title {get;set;}
    public int PageCount {get;set;}
}
public List<BookDTO> getTop3FromBooksQuery(IEnumerable<Book> books){
    return (from b in books select new BookDTO{Title = b.Title, PageCount=b.PageCount}).Take(3).ToList();
}

Operador Select

Nos permite seleccionar campos específicos de un objeto, para mejorar el rendimiento y ahorrar espacio en memoria.