Bird
Raised Fist0
C Sharp (C#)programming~5 mins

Aggregate functions (Count, Sum, Average) in C Sharp (C#)

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction

Aggregate functions help you quickly get useful information from a list of numbers or items, like counting how many there are, adding them up, or finding the average.

Counting how many students passed an exam from a list of scores.
Adding up all sales amounts to find total sales in a day.
Calculating the average temperature from daily readings.
Finding how many products are in stock from a product list.
Syntax
C Sharp (C#)
var count = collection.Count();
var sum = collection.Sum(x => x.Property);
var average = collection.Average(x => x.Property);

These functions are part of LINQ and work on collections like arrays or lists.

You can use a lambda expression to specify which property to use for Sum and Average.

Examples
Count, Sum, and Average used directly on an array of numbers.
C Sharp (C#)
int[] numbers = {1, 2, 3, 4, 5};
int count = numbers.Count();
int sum = numbers.Sum();
double average = numbers.Average();
Using Count, Sum, and Average on a list of objects with a Score property.
C Sharp (C#)
var students = new List<Student> {
    new Student { Name = "Anna", Score = 80 },
    new Student { Name = "Ben", Score = 90 },
    new Student { Name = "Cara", Score = 70 }
};
int count = students.Count();
int totalScore = students.Sum(s => s.Score);
double avgScore = students.Average(s => s.Score);
Sample Program

This program creates a list of students with scores, then uses Count, Sum, and Average to find how many students there are, the total of their scores, and the average score. It prints these results.

C Sharp (C#)
using System;
using System.Collections.Generic;
using System.Linq;

class Student {
    public string Name { get; set; }
    public int Score { get; set; }
}

class Program {
    static void Main() {
        var students = new List<Student> {
            new Student { Name = "Anna", Score = 80 },
            new Student { Name = "Ben", Score = 90 },
            new Student { Name = "Cara", Score = 70 }
        };

        int count = students.Count();
        int totalScore = students.Sum(s => s.Score);
        double averageScore = students.Average(s => s.Score);

        Console.WriteLine($"Number of students: {count}");
        Console.WriteLine($"Total score: {totalScore}");
        Console.WriteLine($"Average score: {averageScore:F2}");
    }
}
OutputSuccess
Important Notes

Count() returns the number of items in the collection.

Sum() adds up all values you specify.

Average() calculates the mean value and returns a double.

Summary

Use Count to find how many items are in a list.

Use Sum to add up values from a list.

Use Average to find the mean value from a list.

Practice

(1/5)
1.

Which aggregate function in C# is used to find how many items are in a list?

easy
A. Count
B. Sum
C. Average
D. Max

Solution

  1. Step 1: Understand the purpose of Count

    The Count function returns the number of elements in a collection.
  2. Step 2: Compare with other aggregate functions

    Sum adds values, Average calculates mean, Max finds the largest value, so they do not count items.
  3. Final Answer:

    Count -> Option A
  4. Quick Check:

    Count = number of items [OK]
Hint: Count counts items, Sum adds, Average finds mean [OK]
Common Mistakes:
  • Confusing Sum with Count
  • Using Average to count items
  • Thinking Max counts items
2.

Which of the following is the correct syntax to calculate the sum of integers in a list named numbers?

var total = ???;
easy
A. numbers.Sum()
B. numbers.Count()
C. Sum(numbers)
D. numbers.Average()

Solution

  1. Step 1: Identify the method to sum list elements

    The Sum() method is called on the list to add all elements.
  2. Step 2: Check syntax correctness

    numbers.Sum() is the correct syntax; Count() counts items, Average() finds mean, Sum(numbers) is invalid.
  3. Final Answer:

    numbers.Sum() -> Option A
  4. Quick Check:

    Sum() adds list values [OK]
Hint: Use list.Sum() to add all numbers [OK]
Common Mistakes:
  • Using Count() instead of Sum()
  • Calling Sum as a standalone function
  • Using Average() to sum values
3.

What is the output of this C# code?

var numbers = new List<int> { 2, 4, 6, 8 };
var result = numbers.Average();
Console.WriteLine(result);
medium
A. 20
B. 6
C. 4
D. 5

Solution

  1. Step 1: Calculate the sum of the list elements

    Sum = 2 + 4 + 6 + 8 = 20
  2. Step 2: Calculate the average

    Average = Sum / Count = 20 / 4 = 5.0
  3. Step 3: Check the output type

    Average returns a double, so output is 5 (printed as 5)
  4. Final Answer:

    5 -> Option D
  5. Quick Check:

    Average = 20 / 4 = 5 [OK]
Hint: Average = sum of values divided by count [OK]
Common Mistakes:
  • Adding values but not dividing by count
  • Confusing sum with average
  • Miscounting number of elements
4.

Identify the error in this code snippet and choose the correct fix:

var numbers = new int[] { 1, 2, 3 };
var total = numbers.Count + 5;
Console.WriteLine(total);
medium
A. No error, code is correct
B. Replace Count with Sum()
C. Replace Count with Count()
D. Replace Count with Average()

Solution

  1. Step 1: Identify the error in Count usage

    Count is a method, so it requires parentheses: Count()
  2. Step 2: Fix the syntax

    Change numbers.Count to numbers.Count() to get the number of elements.
  3. Final Answer:

    Replace Count with Count() -> Option C
  4. Quick Check:

    Count() is a method, not a property [OK]
Hint: Count is a method, always use parentheses [OK]
Common Mistakes:
  • Using Count without parentheses
  • Replacing Count with Sum or Average incorrectly
  • Assuming Count is a property
5.

You have a list of exam scores: var scores = new List<int> { 70, 85, 90, 100, 65 };. You want to find the average score but only for scores above 80. Which code snippet correctly calculates this?

hard
A. var avg = scores.Average(s => s > 80);
B. var avg = scores.Where(s => s > 80).Average();
C. var avg = scores.Sum(s => s > 80) / scores.Count();
D. var avg = scores.Count(s => s > 80) / scores.Sum();

Solution

  1. Step 1: Filter scores greater than 80

    Use Where(s => s > 80) to select only scores above 80.
  2. Step 2: Calculate average of filtered scores

    Call Average() on the filtered list to get the mean of those scores.
  3. Final Answer:

    var avg = scores.Where(s => s > 80).Average(); -> Option B
  4. Quick Check:

    Filter then average = correct approach [OK]
Hint: Filter with Where(), then call Average() [OK]
Common Mistakes:
  • Passing condition directly to Average()
  • Dividing sum by total count instead of filtered count
  • Using Count divided by Sum incorrectly