private int StringCode(string str) { if (_counting) return 0; if (str == null) str = string.Empty; int i; if (!_stringhash.TryGetValue(str, out i)) { i = _stringtable.Count; _stringhash[str] = i; _stringtable.Add(str); } return i; }