No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Operadores MinBy y MaxBy

19/26
Recursos

Aportes 8

Preguntas 1

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

posible solucion al caso de que nos devuelva un null
public Book? lowerPageNumberBook(IEnumerable<Book> books){
return books.Where(b=>b.PageCount>0).FirstOrDefault() is null? new Book(): books.Where(b=>b.PageCount>0).MinBy(b=>b.PageCount);
}

public Book? recentPublishDateBook(IEnumerable<Book> books){
    return books.MaxBy(b=>b.PublishedDate) is null? new Book(): books.MaxBy(b=>b.PublishedDate);
}

creo que se deber铆a profundizar un poco mas y hacer consultas linq un poco mas complejas .

Operadores MinBy y MaxBy

Nos permiten obtener el objeto que cumple una condici贸n especifica.

muy bueno el curso鈥

public IEnumerable<Book> GetBookMinPageCountNonZero()
    {
        return new List<Book>().Append(booksCollection.Where(p => p.PageCount > 0).MinBy(p => p.PageCount)!);
    }

    public IEnumerable<Book> GetBookMaxPublishedDate()
    {
        return new List<Book>().Append(booksCollection.MaxBy(p => p.PublishedDate)!);
    }

Retorno una lista para reutilizar la funci贸n que imprime los resultados y agrego el signo de exclamaci贸n al final para indicar que el valor de la consulta puede ser null.

`Min` se usa para encontrar el valor m铆nimo en una secuencia de elementos, mientras que `MinBy` se usa para encontrar el elemento que tiene el valor m铆nimo basado en una funci贸n de selecci贸n espec铆fica. La 煤ltima requiere una biblioteca adicional como MoreLINQ para ser utilizada.
```c# public Book LibroConMenosPaginasNoCero() { return librosCollection .Where(p => p.PageCount > 0) .MinBy(p => p.PageCount); } public Book LibroMasReciente() { return librosCollection .MaxBy(p => p.PublishedDate); } ```

Una buena opci贸n es modificar la funci贸n ImprimirValores() para que pueda recibir una colecci贸n y/o un solo objeto Book. As铆 podremos usar la misma funci贸n para seguir imprimiendo las propiedades del Book(s) en 鈥渃olumnas鈥:


void ImprimirValores(IEnumerable<Book> listBooks, Book OrgBook)
{
    Console.WriteLine("{0,-60} {1,15} {2,15}\n", "Titulo", "N paginas", "Fecha Publicacion");
    if (listBooks != null)
    {
        foreach (Book book in listBooks)
        {
            Console.WriteLine("{0,-60} {1,15} {2,15}", book.Title, book.PageCount, book.PublishedDate.ToShortDateString());
        }

    }
    else if (OrgBook != null)
    {
        Console.WriteLine("{0,-60} {1,15} {2,15}", OrgBook.Title, OrgBook.PageCount, OrgBook.PublishedDate.ToShortDateString());
    }
}

Para usarlo solo pasamos la colecci贸n o el objeto y la otra propiedad en null:


ImprimirValores(null, queries.BookMinPages());