Я в разное время искал поиск указанного элемента c в ConcurrentBag с использованием .ElementAt () и обнаружил эту странную разницу во времени между поиском элемента с индексом 950 000 и поиском элемента с index: 1 000 000.
Время, необходимое для поиска элемента на 950 000-м месте, составляет от 62 до 68 миллисекунд.
Время, необходимое для поиска элемента на 1 000 000-м месте, составляет от 20 до 23 миллисекунд. .
И я не уверен, почему это так.
Код выглядит так:
ConcurrentBag<int?> concurrentBag = new ConcurrentBag<int?>();
int n = 1000000;
int? n1 = n;
for (int i = 0; i <= n1; i++)
{
concurrentBag.Add(i);
}
DateTime before = DateTime.Now;
int? a = concurrentBag.ElementAt(n);
DateTime after = DateTime.Now;
TimeSpan time = after - before;
Console.WriteLine(time.TotalMilliseconds);