public void WriteResult(IResultWriter writer) { int maxStep = _percalationResult.Max(); var result = new Dictionary <int, double>(maxStep); foreach (var percalationStep in _percalationResult) { var t = percalationStep; while (t <= maxStep) { if (result.ContainsKey(t)) { result[t]++; } else { result.Add(t, 1); } t++; } } for (int i = 0; i <= maxStep; i++) { if (result.ContainsKey(i)) { result[i] = (double)result[i] / (double)_calculationTask.CountOfIteration; } else { result.Add(i, 0); } } writer.WriteDoubleValue(GrafCalculator.GetAvarageLinkCount(_netMap)); writer.WritePercalation(result); }