Resumo : neste tutorial, você aprenderá como usar o Average()
método LINQ para calcular a média de uma sequência de números.
Introdução ao método LINQ Average()
O
método é um método de extensão LINQ que calcula a média de uma sequência de números. A sintaxe do Average()
método é a seguinte:Average()
public static T Average<TSource> (
IEnumerable<TSource> source
);
Linguagem de código: C# ( cs )
Nesta sintaxe:
T
é o tipo de retorno do método médio. Pode serfloat
,float?
,decimal
,decimal?,
double
edouble?
.TSource
é o tipo de elemento da sequência de origem.source
é a sequência de entrada.
Se a sequência de origem estiver vazia, o Average()
método lançará um arquivo InvalidOperationException
. Para evitá-lo, você pode usar DefaultIfEmpty()
o método para fornecer um valor padrão quando a sequência de origem estiver vazia.
A Média possui uma sobrecarga que aceita uma função seletora como segundo argumento:
public static T? Average<TSource> (
IEnumerable<TSource> source,
Func<TSource,int?> selector
);
Linguagem de código: C# ( cs )
O seletor é uma expressão lambda que seleciona os valores para cálculo da média.
Exemplos de métodos LINQ Average()
Vejamos alguns exemplos de uso do Average()
método LINQ.
1) Usando o método LINQ Average() para calcular a média de uma sequência de inteiros
O exemplo a seguir usa o Average()
método para calcular a sequência média de inteiros:
int[] numbers = { 1, 2, 3, 4, 5, 6 };
double average = numbers.Average();
Console.WriteLine($"Average = {average}");
Linguagem de código: C# ( cs )
Saída:
Average = 3
Linguagem de código: C# ( cs )
2) Usando o método LINQ Average() com uma função seletora
O exemplo a seguir demonstra como usar uma função seletora para calcular o comprimento de uma sequência de strings:
string[] words = { "apple", "banana", "strawberry" };
var averageLength = words.Average(word => word.Length);
Console.WriteLine($"Average length = {averageLength} ");
Linguagem de código: C# ( cs )
Saída:
Average length = 7
Linguagem de código: C# ( cs )
3) Usando o método LINQ Average() com um tipo anulável
O Average()
método trata automaticamente valores nulos se a sequência de entrada tiver tipos anuláveis. Por exemplo:
decimal?[] numbers = { 1.0M, null, 3.0M };
decimal? average = numbers.Average();
Console.WriteLine($"Average = {average}");
Linguagem de código: C# ( cs )
Saída:
Average = 2.0
Linguagem de código: C# ( cs )
4) Usando o método LINQ Average() com uma sequência vazia
O exemplo a seguir demonstra como usar o Average()
método com o DefaultIfEmpty()
método:
decimal[] numbers = {};
var average = numbers.DefaultIfEmpty(0).Average();
Console.WriteLine($"Average = {average}");
Linguagem de código: C# ( cs )
Saída:
Average = 0
Linguagem de código: C# ( cs )
Resumo
- Use o
Average()
método LINQ para calcular os números médios em uma sequência. - Use o
DefaultIfEmpty()
método com oAverage()
método para fornecer um valor padrão e evitarInvalidOperationException
se a sequência de entrada estiver vazia.