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