Advertisement
mquinlan

ListCreationBenchmark

Aug 17th, 2024
663
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.06 KB | None | 0 0
  1. using BenchmarkDotNet.Attributes;
  2. using BenchmarkDotNet.Running;
  3.  
  4. namespace ListCreationBenchmark;
  5.  
  6. public class Program
  7. {
  8.     private const int ListSize = 100000;
  9.     private static readonly List<int> ListOne = Enumerable.Range(1, ListSize).OrderBy(n => Random.Shared.Next()).ToList();
  10.  
  11.     [Benchmark]
  12.     public void ToListTest()
  13.     {
  14.         var listTwo = ListOne.ToList();        
  15.     }
  16.  
  17.     [Benchmark]
  18.     public void ForTest()
  19.     {
  20.         var listTwo = new List<int>(ListSize);
  21.         for (var i = 0; i < ListOne.Count; i++)
  22.         {
  23.             listTwo.Add(ListOne[i]);
  24.         }
  25.     }
  26.  
  27.     [Benchmark]
  28.     public void ForEachTest()
  29.     {
  30.         var listTwo = new List<int>(ListSize);
  31.         foreach (var t in ListOne)
  32.         {
  33.             listTwo.Add(t);
  34.         }
  35.     }
  36.  
  37.     [Benchmark]
  38.     public void AddRangeTest()
  39.     {
  40.         var listTwo = new List<int>(ListSize);
  41.         listTwo.AddRange(ListOne);
  42.     }
  43.    
  44.     private static void Main()
  45.     {
  46.         var summary = BenchmarkRunner.Run<Program>();        
  47.     }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement