public static Dictionary <object, uint> FrequencyCounter(this System.Collections.ArrayList x) { long n = x.Count; Dictionary <object, uint> frequencies = new Dictionary <object, uint>((int)n); //for (int i = 0; i < n; i++) System.Threading.Tasks.Parallel.For ( 0, n, i => { object x_i = x.ElementAt((int)i); if (frequencies.ContainsKey(x_i)) { frequencies[x_i] += 1; } else { frequencies.Add(x_i, 1); } } ); return(frequencies); }