diff --git a/ClosedXML/ClosedXML/ClosedXML/Extensions.cs b/ClosedXML/ClosedXML/ClosedXML/Extensions.cs index e7e1bb7..1a33550 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Extensions.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Extensions.cs @@ -164,10 +164,27 @@ public static class IntegerExtensions { - + private static readonly NumberFormatInfo nfi = CultureInfo.InvariantCulture.NumberFormat; + [ThreadStatic] + private static Dictionary intToString; public static String ToInvariantString(this Int32 value) { - return value.ToString(CultureInfo.InvariantCulture); + String sValue; + if (intToString == null) + { + intToString = new Dictionary(); + sValue = value.ToString(nfi); + intToString.Add(value, sValue); + } + else + { + if (!intToString.TryGetValue(value, out sValue)) + { + sValue = value.ToString(nfi); + intToString.Add(value, sValue); + } + } + return sValue; } }