BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19044.1645 (21H2)
AMD Ryzen 9 3900X, 1 CPU, 24 logical and 12 physical cores
.NET SDK=6.0.201
[Host] : .NET 6.0.4 (6.0.422.16404), X64 RyuJIT
DefaultJob : .NET 6.0.4 (6.0.422.16404), X64 RyuJIT
Method | N | Mean | Error | StdDev |
---|---|---|---|---|
Any | 10000 | 118.93 μs | 1.272 μs | 1.190 μs |
Exists | 10000 | 26.74 μs | 0.241 μs | 0.226 μs |
Contains | 10000 | 27.60 μs | 0.202 μs | 0.189 μs |
Any | 100000 | 1,205.88 μs | 22.752 μs | 24.344 μs |
Exists | 100000 | 298.77 μs | 5.601 μs | 6.226 μs |
Contains | 100000 | 319.28 μs | 6.345 μs | 15.564 μs |
Any | 1000000 | 13,208.13 μs | 236.847 μs | 339.679 μs |
Exists | 1000000 | 8,192.19 μs | 84.736 μs | 70.758 μs |
Contains | 1000000 | 8,295.04 μs | 144.080 μs | 201.980 μs |
Any | 10000000 | 131,926.95 μs | 2,610.394 μs | 3,006.134 μs |
Exists | 10000000 | 89,094.71 μs | 1,732.868 μs | 2,313.329 μs |
Contains | 10000000 | 88,575.13 μs | 1,595.753 μs | 2,184.285 μs |
The results of this benchmark show that List<T>.Exists
and List<T>.Contains
are both faster than List<T>.Any
.