internal static string BuildPath(List <JsonPosition> positions, JsonPosition?currentPosition) { int capacity = 0; if (positions != null) { for (int i = 0; i < positions.Count; i++) { JsonPosition position = positions[i]; capacity += position.CalculateLength(); } } if (currentPosition.HasValue) { capacity += currentPosition.GetValueOrDefault().CalculateLength(); } StringBuilder sb = new StringBuilder(capacity); if (positions != null) { foreach (JsonPosition position2 in positions) { position2.WriteTo(sb); } } if (currentPosition.HasValue) { currentPosition.GetValueOrDefault().WriteTo(sb); } return(sb.ToString()); }