Home
C#
Count Extension Method
Updated May 3, 2023
Dot Net Perls
Count. This C# extension method enumerates elements. In many cases, the Count() extension is not useful, but in others it is appropriate.
Most collections in C# have a Length or Count property that is more efficient. For these situations, use the property directly.
Array Count
Lambda example. This is a complex example of Count(). Count() can be used with an argument of type Func. The Func can be specified with a lambda.
Func
Lambda
Here In this example we count only int elements greater than 2. The values 3, 4 and 5—three elements—are greater than 2.
using System; using System.Linq; int[] array = { 1, 2, 3, 4, 5 }; // ... Count only elements greater than 2. int greaterThanTwo = array.Count(element => element > 2); Console.WriteLine(greaterThanTwo);
3
Query example. To continue, the Count() extension is found in System.Linq. It acts upon IEnumerable—so it works on Lists and arrays, even when those types have other counting properties.
Part 1 When Count() is called on Lists or arrays, you lose some performance over calling the direct properties available.
Part 2 If you use a LINQ query expression (or have an IEnumerable instance) Count is an effective option.
IEnumerable
using System; using System.Collections.Generic; using System.Linq; int[] array = { 1, 2, 3 }; // Part 1: don't use Count() like this. // ... Use Length instead. Console.WriteLine(array.Count()); List<int> list = new List<int>() { 1, 2, 3 }; Console.WriteLine(list.Count()); // Part 2: use Count on query expression. var result = from element in array orderby element descending select element; Console.WriteLine(result.Count());
3 3 3
In benchmarks, the Length and Count properties are compared to the Count extension method. Using a property on a collection is much faster than Count.
A summary. The Count() method gets the number of elements in an IEnumerable collection. It enumerates the elements. This often is an inefficient way to get the element count of collections.
Dot Net Perls is a collection of pages with code examples, which are updated to stay current. Programming is an art, and it can be learned from examples.
Donate to this site to help offset the costs of running the server. Sites like this will cease to exist if there is no financial support for them.
Sam Allen is passionate about computer languages, and he maintains 100% of the material available on this website. He hopes it makes the world a nicer place.
This page was last updated on May 3, 2023 (simplify).
Home
Changes
© 2007-2025 Sam Allen