private void LookForDIValues() { DictionaryAddHelper <long, int> addHelper = new DictionaryAddHelper <long, int>(); Dictionary <long, int> counts = new Dictionary <long, int>(); List <long> unique = XValuesDiff.ToList(); while (unique.Count > 0) { long value = unique[0]; unique.RemoveAt(0); unique.ForEach(damage => { if (Math.Abs(value - damage) <= 5 && damage > 20) { addHelper.Add(counts, value, 1); } }); } int max = -1; long foundKey = -1; foreach (long key in counts.Keys) { if (counts[key] > max) { max = counts[key]; foundKey = key; } } if (foundKey > -1) { int diCount = 0; DIMap = new Dictionary <long, DIValue>(); for (int i = 0; i < XValuesDiff.Count; i++) { if (Math.Abs(XValuesDiff[i] - foundKey) <= 4) { diCount++; if (diCount == 1) { DIMap[XValues[i]] = new DIValue() { DI = diCount }; } else { DIMap[XValues[i]] = new DIValue() { DI = diCount, Diff = XValuesDiff[i] }; } } } ; if (DIMap.Count > 5) { } } }