C# Any

Any method

Any receives a Predicate. It determines if any element in a collection matches a certain condition. You could do this imperatively, using a loop construct. But the Any extension method provides another way. It reduces code size.

Extension Method

Example

Note

Please include the System.Linq using directive at the top of your program. This allows you to call the Any extension. In this example, we see an array of three integer values. These values determine the results of the Any method.

Int Array

Methods:The first call tests for any even int.
The second tests for any int greater than 3.
The third checks for any int equal to 2.

Odd and Even Numbers

Tip:You can, when executing the program on your computer, change the expressions in the lambda to determine the correctness of the tests.

Program that uses Any extension method: C#

using System;
using System.Linq;

class Program
{
    static void Main()
    {
	int[] array = { 1, 2, 3 };
	// See if any elements are divisible by two.
	bool b1 = array.Any(item => item % 2 == 0);
	// See if any elements are greater than three.
	bool b2 = array.Any(item => item > 3);
	// See if any elements are 2.
	bool b3 = array.Any(item => item == 2);
	// Write results.
	Console.WriteLine(b1);
	Console.WriteLine(b2);
	Console.WriteLine(b3);
    }
}

Output

True
False
True

Internals

Framework: NET

How does the Any method actually work? When you call the Any method, you are passing a Predicate type, which is a function with a bool result. Internally, the Any method loops through each element in the source collection.

Predicate

Then:When it finds an element that the Predicate returns true for, the true result is propagated. It uses an early-exit.

Summary

C# programming language

The Any method in the C# language doesn't do just anything. It instead evaluates a Predicate method on the source collection and returns a boolean indicating whether any element matches the Predicate.

Thus:The Any method can be used to elegantly replace imperative loop constructs, reducing the size of your source.


C#: LINQ