Média LINQ

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 Average()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:

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 ser float, float?, decimal, decimal?, doublee double?.
  • 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 = 3Linguagem 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 = 7Linguagem 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.0Linguagem 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 = 0Linguagem 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 o Average()método para fornecer um valor padrão e evitar InvalidOperationExceptionse a sequência de entrada estiver vazia.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *