using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Running; using System.Collections.Generic; using System.Linq; using BenchmarkDotNet.Order; // Represents a person with an ID and a Name public class Person { public int Id { get; set; } public string Name { get; set; } } [MemoryDiagnoser, RankColumn, Orderer(SummaryOrderPolicy.FastestToSlowest)] public class LinqPerformanceBenchmark { private List _personList; public LinqPerformanceBenchmark() { _personList = new List(); for (int personIndex = 0; personIndex < 100_000; personIndex++) { _personList.Add(new Person { Id = personIndex, Name = "Person" + personIndex }); } } [Benchmark] public void RetrieveLastPersonUsingLinqLastMethod() { Person lastPersonUsingLinq = _personList.Last(); } [Benchmark] public void RetrieveLastPersonUsingIndexer() { Person lastPersonUsingIndexer = _personList[^1]; } } public class Program { public static void Main(string[] args) { BenchmarkRunner.Run(); } }