LINQ Interview Question #118

How does Any usually compare with Count() > 0 for performance?

LINQ Performance, EF Core LINQ, Expressions & Advanced Queries Senior Advanced

Quick Interview Answer

When only existence matters, Any communicates the intent directly and can stop after determining that a matching element exists. Count must determine a count.

Detailed Explanation

When only existence matters, Any communicates the intent directly and can stop after determining that a matching element exists. Count must determine a count.

For database providers, Any is commonly translated into an existence-oriented query. Count should be used when the actual number of records is required.

Code Example

bool exists = await db.Products
    .AnyAsync(p => p.IsActive);

// Use CountAsync only when the count is needed.
int count = await db.Products
    .CountAsync(p => p.IsActive);