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.
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 tested code examples. Pages are continually updated to stay current, with code correctness a top priority.
Sam Allen is passionate about computer languages. In the past, his work has been recommended by Apple and Microsoft and he has studied computers at a selective university in the United States.
This page was last updated on May 3, 2023 (simplify).