No tienes acceso a esta clase

¬°Contin√ļa aprendiendo! √önete y comienza a potenciar tu carrera

Operador Average

21/26
Recursos

Aportes 13

Preguntas 0

Ordenar por:

¬ŅQuieres ver m√°s aportes, preguntas y respuestas de la comunidad?

// Obtener el promedio del n√ļmero de paginas que son mayores a cero
void Challenge_19(IEnumerable<Book> books)
{
    var avg = books.Where(b => b.PageCount > 0).Average(b => b.PageCount);
    Console.WriteLine($"El promedio de n√ļmero de paginas que son mayores a cero: {avg}");
}

Operador Average

Permite sacar un promedio de una propiedad numérica que tengamos adentro de la colección.

public double TitleLneghtAverage(IEnumerable<Book>books){
    return books.Average(p=>p.Title.Length);
}

public double PagesAverage(IEnumerable<Book>books){
    return books.Where(b=>b.PageCount>0).Average(b=>b.PageCount);
}
```c# public double PromedioDeCaracteresDeLosTitulosDeLosLibros() { return librosCollection.Where(p => p.PageCount > 0).Average(p => p.Title.Length); } ```public double PromedioDeCaracteresDeLosTitulosDeLosLibros()        {            return librosCollection.Average(p => p.Title.Length);            return librosCollection.Where(p => p.PageCount > 0).Average(p => p.Title.Length);        }
En resumen, el método `Average` en LINQ es una manera conveniente de calcular el promedio de los valores numéricos en una secuencia, ya sea directamente en la secuencia o mediante la proyección de un campo específico de objetos en la secuencia.
cw + Tab es el mejor atajo para escribir Console.WriteLine
```c# public double PromedioPalabrasPorTitulo() { return librosCollection .Average(p => p.Title.Length); } public double PromedioPalabrasPorTituloConPaginasMayorCero() { return librosCollection .Where(p => p.PageCount > 0) .Average(p => p.Title.Length); } ```
 public double PromedioDelNumeroPaginasQueTienenLosLibros()
    {
        return booksCollection.Where(x=>x.PageCount>0).Average(p=> p.PageCount);
    }
public double PromedioDePaginasporlibro() 
{
    return librosCollections
       .Where(p=> p.PageCount>0)
       .Average(p=> p.PageCount);
}

Reto conseguido:

public double PromedioPaginasLibros()
        {
            return librosCollection.Where(book => book.PageCount > 0).Average(book => book.PageCount);
        }

//* Promedio de p√°ginas de los libros
        Console.WriteLine($"Promedio de p√°ginas de los libros: {queries.PromedioPaginasLibros()}");

Mi output fue 461

public double PromedioDeCaracteresTitulo()
    {
        //  Extension Method
        //return librosCollection.Average(x => x.Title.Length);

        //---->> Extension Query <<------
        double prom = (from pr in librosCollection select pr.Title.Length).Average();

        return prom;
    }

Comparto la solución del reto, además de una manera de evitar el warning que se presenta con el código inicial implementado:

public double PromedioCaracteresTitulo()
    {
        return librosCollection.Average( p => (p.Title ?? "").Length);
    }

    public double PromedioNumeroPaginasLibros()
    {
        return librosCollection.Where( p => p.PageCount > 0).Average( p => p.PageCount);
    }
//Obtener el promedio del n√ļmero de paginas mayor a 0
        public double AveragePages(){
            return (from b in librosCollection where b.PageCount > 0 select b).Average(b => b.PageCount);
        }

Si se desea redondearlo se usaria Math.Round()