LinqBenchmarks icon indicating copy to clipboard operation
LinqBenchmarks copied to clipboard

Benchmarking LINQ and alternative implementations

LinqBenchmarks

Benchmarks comparing the performance of LINQ against for/foreach loops and the following libraries:

Results

Range()

  • Range()
  • Range().Select()
  • Range().Select().ToArray()
  • Range().Select().ToList()
  • Range().ToArray()
  • Range().ToList()

IEnumerable<int>

  • enumerable.Contains()
  • enumerable.Distinct()
  • enumerable.Select()
  • enumerable.Skip().Take().Select()
  • enumerable.Skip().Take().Where()
  • enumerable.Sum()
  • enumerable.Where()
  • enumerable.Where().Count()
  • enumerable.Where().Select()
  • enumerable.Where().Select().ToArray()
  • enumerable.Where().Select().ToList()

IEnumerable<FatReferenceType>

  • enumerable.Any()
  • enumerable.FirstOrDefault()

int[]

  • array.Contains()
  • array.Distinct()
  • array.Select()
  • array.Select().ToList()
  • array.Skip().Take().Select()
  • array.Skip().Take().Where()
  • array.Sum()
  • array.Where()
  • array.Where().Count()
  • array.Where().Select()
  • array.Where().Select().ToArray()
  • array.Where().Select().ToList()

FatValueType[]

  • array.Contains()
  • array.Distinct()
  • array.Select()
  • array.Select().Sum()
  • array.Skip().Take().Select()
  • array.Skip().Take().Where()
  • array.Where()
  • array.Where().Count()
  • array.Where().Select()
  • array.Where().Select().ToArray()
  • array.Where().Select().ToList()

List<int>

  • list.Contains()
  • list.Distinct()
  • list.Select()
  • list.Select().ToList()
  • list.Skip().Take().Select()
  • list.Skip().Take().Where()
  • list.Sum()
  • list.Where()
  • list.Where().Select()
  • list.Where().Select().ToArray()
  • list.Where().Select().ToList()

List<FatValueType>

  • list.Contains()
  • list.Distinct()
  • list.Select()
  • list.Select().Sum()
  • list.Skip().Take().Select()
  • list.Skip().Take().Where()
  • list.Where()
  • list.Where().Select()
  • list.Where().Select().ToArray()
  • list.Where().Select().ToList()

ImmutableArray<int>

  • array.Contains()
  • array.Select()
  • array.Skip().Take().Select()
  • array.Sum()
  • array.Where()

IAsyncEnumerable<int>

  • enumerable.ContainsAsync()
  • enumerable.Distinct()
  • enumerable.Select()
  • enumerable.Skip().Take().Select()
  • enumerable.Skip().Take().Where()
  • enumerable.SumAsync()
  • enumerable.Where()
  • enumerable.Where().CountAsync()
  • enumerable.Where().Select()
  • enumerable.Where().Select().ToArrayAsync()
  • enumerable.Where().Select().ToListAsync()

IAsyncEnumerable<FatReferenceType>

  • enumerable.AnyAsync()
  • enumerable.FirstOrDefaultAsync()