public void TestForeach() { const int numValues = 100000; Scheduler.WaitFor(WriteLotsOfValuesInBatch(Tangle, numValues, -1)); var keys = new List <int>(); for (int i = 0; i < numValues; i += 2) { keys.Add(i); } long startTime = Time.Ticks; var bag = new ConcurrentBag <int>(); var fForeach = Tangle.ForEach(keys, (key, value) => bag.Add(value)); Scheduler.WaitFor(fForeach); decimal elapsedSeconds = (decimal)(Time.Ticks - startTime) / Time.SecondInTicks; Console.WriteLine( "{0} values in ~{1:00.000} second(s) at ~{2:00000.00} values/sec.", keys.Count, elapsedSeconds, keys.Count / elapsedSeconds ); Assert.AreEqual(keys.Count, bag.Count()); Assert.AreEqual( keys.OrderBy((k) => k).ToArray(), bag.OrderBy((k) => k).ToArray() ); }