internal static string GetHashKey(string sourceString) { try { if (hashKeyCache.ContainsKey(sourceString)) { return(hashKeyCache[sourceString]); } else { if (hashKeyCache.Count > 512) { hashKeyCache.Clear(); hashKeyCache = new MDictionary <string, string>(64); } string value = "K" + Math.Abs(sourceString.GetHashCode()) + sourceString.Length; hashKeyCache.Add(sourceString, value); return(value); } } catch { return(sourceString); } }