O'Reilly logo

LINQ Pocket Reference by Joseph Albahari, Ben Albahari

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Aggregation Methods

Method

Description

SQL equivalents

Count, LongCount

Returns the number of elements in the input sequence, optionally satisfying a predicate

COUNT( )

Min, Max

Returns the smallest or largest element in the sequence

MIN( ), MAX( )

Sum, Average

Calculates a numeric sum or average over elements in the sequence

SUM( ), AVG ()

Aggregate

Performs a custom aggregation

Exception thrown

Count and LongCount

Argument

Type

Source sequence

IEnumerable<TSource>

Predicate (optional)

TSource => bool

Count simply enumerates over a sequence, returning the number of items:

	int fullCount = new int[] { 5, 6, 7}.Count();    // 3

The internal implementation of Enumerable.Count tests the input sequence to see whether it happens to implement ICollection<T>. If it does, it simply calls ICollection<T>.Count. Otherwise, it enumerates over every item, incrementing a counter.

You can optionally supply a predicate:

	int digitCount =
	  "pa55w0rd".Count (c => char.IsDigit (c));   // 3

LongCount does the same job as Count, but returns a 64-bit integer, allowing for sequences of greater than 2 billion elements.

Min and Max

Argument

Type

Source sequence

IEnumerable<TSource>

Result selector (optional)

TSource => TResult

Min and Max return the smallest or largest element from a sequence:

	int[] numbers = { 28, 32, 14 };
	int smallest = numbers.Min();    // 14;
	int largest  = numbers.Max();    // 32;

If you include a selector expression, each element is first projected:

	int smallest = numbers.Max (n => n % 10);   // 8;

A selector ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required